我正在创建的网站有一个部分用于未经过身份验证的用户,另一个部分用于经过身份验证的用户。
(几乎)网站中的每个页面都有一个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控件上的登录选项并再次登录,您就不会被定向到登录控件中指定的页面,而是返回到您选择登录选项时所在的页面LoginStaus控件。
这是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
在登录控件中指定,您将被引导回您来自的页面。
我真的很难过。
答案 0 :(得分:1)
导致我的问题的属性是'LogoutAction'控件。
在我使用的版本(2010)中,默认值为“刷新”,而需要将其更改为“重定向”,以便始终转到“LogoutPageURL”控件中指定的页面而不是在重新登录后从你那里回来。
希望这有助于某人, 菲尼克斯
答案 1 :(得分:0)
此页面应提供有关LoginStatus类的答案 - http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginstatus.aspx
您需要检查Page对象的IsAuthenticated属性。