4

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

(几乎)站点中的每个页面都有一个 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 控件中指定的页面,而是最终回到您在 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

正如在登录控件中指定的那样,您将被引导回您来自的页面。

我真的很难过。

4

2 回答 2

1

好吧,我的一位大学老师帮助我解决了这个问题的实际答案,虽然我不能对此表示赞赏,但我在这里提出它是为了帮助可能遇到同样问题的其他人。

导致我的问题的属性是“LogoutAction”控件。

在我使用的 VS 版本(2010)中,默认值为“Refresh”,而需要将其更改为“Redirect”,以便始终转到“LogoutPageURL”控件中指定的页面并且不从何处返回你是在重新登录后来的。

希望这可以帮助某人,菲尼克斯

于 2012-12-12T15:12:12.010 回答
0

此页面应提供有关 LoginStatus 类的答案 - http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginstatus.aspx

您需要检查 Page 对象的 IsAuthenticated 属性。

于 2012-11-26T22:52:45.610 回答