檢索視圖的用戶名有什麼區別?IPrincipal或成員資格檢索用戶名
<%= Page.User.Identity.Name %>
或
<%= Membership.GetUser().UserName %>
檢索視圖的用戶名有什麼區別?IPrincipal或成員資格檢索用戶名
<%= Page.User.Identity.Name %>
或
<%= Membership.GetUser().UserName %>
據the documentation,GetUser
會從數據源中的信息,並更新上次活動日期/時間標記爲當前登錄的成員資格用戶。
Page.User.Identity.Name
不這樣做。它讀取內存中可用的信息。
Page.User.Identity在頁面通過管道時被填充。
Membership.GetUser()。用戶名從數據庫,Active Directory或提供程序支持的任何其他位置再次獲取信息,導致第二次查找。
這是不太可能改變,所以我會使用Page.User.Identity。
Page.User.Identity.Name給出當前記錄的用戶的身份。 Membership.GetUser()允許您獲取有關用戶的信息。
BTW,調用的getUser()不帶參數相同
Membership.GetUser(Page.User.Identity.Name)
所以,如果你只需要用戶名,使用Page.User.Identity.Username和使用Membership.GetUser(),以獲得更多關於用戶的信息,比如電子郵件,或者像改變他的密碼一樣對用戶執行操作。
希望這將有助於
說明它很可能有User.Identity.Name
引用不甚至在會員數據庫中的用戶。這是表單身份驗證以及User
概念的一般抽象,其不一定存在於成員數據庫中。
如果您從會員數據庫中刪除當前用戶,則User.Identity.Name
將保留其原始值。