1

私は自分の Web サイトで役割管理を使い始めており、現在このチュートリアルに従っています: 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 に答える