2009-09-23 87 views
1

我開始在我的網站中使用角色管理,並且我正在按照本教程進行操作: http://www.asp.net/Learn/Security/tutorial-02-vb.aspxAsp.net登錄狀態不起作用

我遇到了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> 

表單身份驗證已啓用。

如何獲取登錄狀態以正確顯示?

回答

0

修正:我有asp.net配置設置,即已經存在的用戶/角色。所以每次我嘗試登錄時,它都不起作用。爲了解決這個問題,重置asp.net配置設置,或從頭開始新項目(我沒有這樣做)

0

我沒有看到你的代碼有什麼問題,並且教程代碼適用於我。您是否嘗試過使用可下載的代碼來查看教程是否展現出相同的行爲?

Sample Tutorial Code

+0

我會試試看,謝謝。 – contactmatt 2009-09-23 19:05:25

+0

沒有任何工作。任何建議任何人? – contactmatt 2009-09-23 22:39:49