我正在创建的网站有一个部分用于未通过身份验证的用户,另一个部分则用于通过身份验证用户。
(几乎)网站中的每个页面都有一个LoginStatus控件,该控件位于标题中,根据状态显示为2个不同的按钮。
我遇到的问题是,尽管将该控件中的LogoutPageUrl值设置为"~login.aspx",但对于网站的未经身份验证的文件夹中的页面,网站只是刷新页面,但控件确实通过在控件中显示正确的图像来显示用户已注销。。当再次点击该控件时,您将被引导到登录页面。
这是控制:
<asp:LoginStatus CssClass="loginControlBtn" ID="LoginStatus2"
runat="server" LogoutPageUrl="~/login.aspx"
LoginImageUrl="~/images/LoginBtn.jpg"
LogoutImageUrl="~/images/LogoutBtn.jpg" />
此外,单击LoginStatus控件上的登录选项并再次登录后,您不会被引导到login控件中指定的页面,而是返回到您在LoginStats控件上选择login选项时所在的页面。
这是登录控制的代码:
<asp:Login ID="helpDeskLoginCtrl" runat="server"
DestinationPageUrl="~/admin/HelpDeskOptions.aspx"
style="text-align: justify" VisibleWhenLoggedIn="False" Width="421px">
</asp:Login>
该网站使用表单身份验证,因此只有经过身份验证的用户才能查看"~/admin"文件夹中的页面。。至少这一部分工作正常,因为当您在该文件夹中的某个页面上选择注销时,您会被引导到"~/login.aspx"页面。
但当你再次登录而不是去时
DestinationPageUrl="~/admin/HelpDeskOptions.aspx
按照登录控件中的指定,您将被引导回您来自的页面。
我真的被难住了。
好吧,我的一位大学老师帮助我找到了这个问题的实际答案,虽然我不能因此而受到赞扬,但我把它放在这里是为了帮助其他可能遇到同样问题的人。
导致我的问题的属性是"LogoutAction"控件。
在我使用的VS版本(2010)中,默认值为"刷新",而它需要更改为"重定向",以便始终转到"LogoutPageURL"控件中指定的页面,并且在重新登录后不会返回。
希望这能帮助到别人,Fenix
此页面应提供有关登录状态类的答案-http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginstatus.aspx
您需要检查Page对象的IsAuthenticated属性。