我正在创建的网站有一个部分供未经过身份验证的用户使用,另一个部分供经过身份验证的用户使用。
(几乎)站点中的每个页面都有一个 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 控件。
这是登录控件的代码:
<asp:Login ID="helpDeskLoginCtrl" runat="server"
DestinationPageUrl="~/admin/HelpDeskOptions.aspx"
style="text-align: justify" VisibleWhenLoggedIn="False" Width="421px">
</asp:Login>
该站点使用 Forms 身份验证,因此只有经过身份验证的用户才能查看“~/admin”文件夹中的页面..并且至少这部分工作正常,因为当您在该文件夹中的页面上选择注销时,您被引导到“~/login.aspx”页面。
但是当你再次登录而不是去
DestinationPageUrl="~/admin/HelpDeskOptions.aspx
按照登录控件中的指定,您将被定向回您来自的页面。
我真的很难过
最佳答案
好吧,我的一位大学老师帮助我找到了这个问题的实际答案,虽然我不能把它归功于我,但我将它放在这里是为了帮助可能遇到同样问题的其他人。
导致我出现问题的属性是“LogoutAction”控件。
在我使用的 VS 版本 (2010) 中,默认值为“刷新”,但需要将其更改为“重定向”,以便始终转到“LogoutPageURL”控件中指定的页面,而不是重新登录后从你来的地方返回。
希望这对某人有帮助, 菲尼克斯
关于c# - 登录和登录状态目标 URL 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13548847/