如果你想要做的是存儲任意數據與用戶名一起,有一個名爲FormsAuthenticationExtensions一個開源項目,可以讓您精確地做到這一點非常簡單的方式:
在你的登錄操作您將存儲你的數據是這樣的:
var ticketData = new NameValueCollection
{
{ "name", user.FullName },
{ "emailAddress", user.EmailAddress }
};
new FormsAuthentication().SetAuthCookie(user.UserId, true, ticketData);
而且你讀回這樣的:
var ticketData = ((FormsIdentity) User.Identity).Ticket.GetStructuredUserData();
var name = ticketData["name"];
var emailAddress = ticketData["emailAddress"];
數據存儲在相同的cookie持身份驗證票證,所以這將是可用的,只要用戶登錄
項目頁面:http://formsauthext.codeplex.com/
的NuGet:http://nuget.org/List/Packages/FormsAuthenticationExtensions
,因爲你不」每次你想要顯示用戶的全名時,你都要去數據庫 – Eranga
@Eranga - 我認爲從數據庫中獲得自定義成員資格提供者會更有效率,它很容易做,而且你可以做它一次,然後忘掉它。有幾篇關於如何做到這一點的文章。另一種選擇是創建緩存此數據的CachedMembershipUser包裝器。您使用相同的接口,但需要時轉發給真正的提供者。 –