2009-10-01 84 views
0

使用表單身份驗證,如果他們在登錄過程中使用以下一段代碼在Login1_LoggedIn事件中標記爲記住我,我將爲每個用戶存儲一個Cookie。表單身份驗證 - 存儲和檢索用戶名稱

if (rememberMe.Checked) FormsAuthentication.SetAuthCookie(Login1.UserName, true); 

當用戶通過cookie到達我的頁面時,我需要獲取他/她的用戶名,以便我可以檢查他們的角色。 Forms Authentication cookie是否存儲這些信息,以及如何檢索它?

回答

2

當用戶訪問頁面時,解析爲SetAuthCookie(您的情況爲Login1.UserName)的字符串將存儲在IPrincipal中。您可以通過訪問:

Page.User.Identity.Name 
+0

這樣做的問題是,當我檢查了cookie,則用戶沒有登錄;因此他的身份沒有建立,因此我不能使用此代碼。 – 2009-10-01 15:41:15

+0

哈哈。忽略我最後的評論。愚蠢的我跳到結論。 +1並且接受DaveG !. – 2009-10-01 15:52:25

+0

也可以將用戶角色存儲在身份驗證cookie本身中,並使用Page.User.IsInRole(「yourrole」); – 2009-10-01 16:05:13

1

嘗試

Page.User.Identity.Name 

HttpContext.Current.User.Identity.Name 
+0

+1因爲這是正確的,但DaveG擊敗亞,所以他被接受。不過,謝謝! – 2009-10-01 15:52:59