0

私がやろうとしていること

ユーザーを認証し、ロールに基づいてページにリダイレクトします。

私の問題

初めて正しい資格情報を入力すると失敗します。ユーザーは認証されますが、ユーザーの役割を評価すると、if ステートメントはどれも true ではありません。2 回目 (ポストバック後) は期待どおりに動作します。

私の質問

これが機能しないのはなぜですか。ロールを設定する前に、ユーザーを認証してポストバックする必要があるのはなぜですか?

コード

Private Sub Login1_Authenticate(sender As Object, e As AuthenticateEventArgs) Handles Login1.Authenticate
If Membership.ValidateUser(Login1.UserName, Login1.Password) Then
  FormsAuthentication.SetAuthCookie(Login1.UserName, False)
  ToPage()
End If
End Sub

Private Sub ToPage()
If User.IsInRole("Role1") Then
  Response.Redirect("~/Page1.aspx")
End If

If User.IsInRole("Role2") Then
  Response.Redirect("~/Page2.aspx")
End If

If User.IsInRole("Role3") Then
  Response.Redirect("~/Page3.aspx")
End If
End Sub
4

1 に答える 1