2

onloggedinのイベントハンドラーを備えた.Netログインコントロールがあります。

onloggedin="Login2_LoggedIn"

ただし、User.Identityは常にnullです。

 protected void Login2_LoggedIn(object sender, EventArgs e)
{
    // Is User is Admin
    if (Roles.IsUserInRole(User.Identity.Name, "admin"))

この時点で利用可能になるはずですか? または、オブジェクトの送信者またはEventArgs eからユーザー名を取得する必要がありますか?

4

1 に答える 1

8

Page.Userは、認証後にページがポストバックするまで使用できないため、ログインコントロールをホストしているページではnullになります。ただし、ログインコントロールのUserNameプロパティを使用して、メソッドを呼び出すことはできます。この時点でユーザーが認証されているため、これはLoggedInイベントハンドラーで安全に実行できます。

if (Roles.IsUserInRole(Login2.UserName, "admin"))
...
于 2009-12-30T21:12:53.180 に答える