登录和登录状态目标URL工作不正常



我正在创建的网站有一个部分用于未通过身份验证的用户,另一个部分则用于通过身份验证用户。

(几乎)网站中的每个页面都有一个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属性。

最新更新