2009-12-23 58 views
2

我有一个.net登录控制与onloggedin事件处理程序。.net在onloggedin登录,是User.Identity null?

onloggedin="Login2_LoggedIn" 

但是User.Identity始终为空。

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

它是否应该提供在这一点? 或者我应该从对象发件人或EventArgs e获取用户名?

回答

8

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

if (Roles.IsUserInRole(Login2.UserName, "admin")) 
...