我开始在我的网站中使用角色管理,我目前正在关注本教程: 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>
表单身份验证已启用。
如何让登录状态正确显示?