.Net登录onloggedin,是User.Identity null?

aro*_*ron 2 asp.net-membership loginview login-control

我有一个带有onloggedin事件处理程序的.Net登录控件.

onloggedin="Login2_LoggedIn"
Run Code Online (Sandbox Code Playgroud)

但User.Identity始终为null.

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

它应该在此时可用吗? 或者我应该从对象发送者或EventArgs e获取用户名?

Jam*_*Ide 8

Page.User在验证后页面回发后才可用,因此在托管登录控件的页面上为null.但是,您仍然可以使用登录控件的UserName属性来调用该方法.这在LoggedIn事件处理程序中是安全的,因为此时用户已经过身份验证.

if (Roles.IsUserInRole(Login2.UserName, "admin"))
...
Run Code Online (Sandbox Code Playgroud)