2009-12-23 27 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")) 
...