1

我开始在我的网站中使用角色管理,我目前正在关注本教程: http ://www.asp.net/Learn/Security/tutorial-02-vb.aspx 。

我在使用 asp:LoginStatus 控件时遇到问题。成功登录后,它并没有告诉我我当前已登录。这不可能是真的,因为在成功登录后,会显示我的 LoggedInTemplate。用户名和密码简单地存储在一个数组中。这是 Login.aspx 页面代码:

 Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles btnLogin.Click
        ' Three valid username/password pairs: Scott/password, Jisun/password, and Sam/password.

    Dim users() As String = {"Scott", "Jisun", "Sam"}

    Dim passwords() As String = {"password", "password", "password"}

    For i As Integer = 0 To users.Length - 1

        Dim validUsername As Boolean = (String.Compare(txtUserName.Text, users(i), True) = 0)

        Dim validPassword As Boolean = (String.Compare(txtPassword.Text, passwords(i), False) = 0)

        If validUsername AndAlso validPassword Then

            FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, chkRemember.Checked)

        End If

    Next

    ' If we reach here, the user's credentials were invalid

    lblInvalid.Visible = True
End Sub

这是母版页上专门用于保存登录信息的内容占位符。成功登录后,页面被重定向到“/Default.aspx”,并显示下面的 LoggedIn 模板......但状态显示为登录。

<asp:ContentPlaceHolder Id="LoginContent" runat="server">
     <asp:LoginView ID="LoginView1" runat="server">

           <LoggedInTemplate>

                Welcome back, <asp:LoginName ID="LoginName1" runat="server" />.

           </LoggedInTemplate>

           <AnonymousTemplate>

                Hello, stranger. 

           </AnonymousTemplate>

      </asp:LoginView>

      <br />
        <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutAction="Redirect" LogoutPageUrl="~/Logout.aspx" />

      </asp:ContentPlaceHolder>

表单身份验证已启用。

如何让登录状态正确显示?

4

2 回答 2

0

我看不出你的代码有什么问题,教程代码对我有用。您是否尝试过使用本教程的可下载代码来查看它是否表现出相同的行为?

示例教程代码

于 2009-09-23T17:54:52.813 回答
0

固定:我有 asp.net 配置设置,它有现有的用户/角色。因此,每次我尝试登录时,它都无法正常工作。要解决此问题,请重置 asp.net 配置设置,或从头开始新项目(我没有这样做)

于 2010-03-08T05:45:16.433 回答