C# MVC3-获取经过身份验证的用户';部门名称

C# MVC3-获取经过身份验证的用户';部门名称,c#,asp.net-mvc-3,authentication,C#,Asp.net Mvc 3,Authentication,在我的应用程序中,我有一个db表,其中包含一个用户列表和一个相关的部门表。只要用户模型是我正在操作的当前对象的一个属性(从数据库中检索),我就可以“深入”访问用户的部门名称…或属于该用户obj属性的任何其他信息 我希望能够对当前经过身份验证的用户执行相同类型的数据访问…这显然是一个完全不同的模型。有谁能告诉我,是否有一种方法可以将属性附加到经过身份验证的用户模型,或者至少将其绑定到现有对象 提前感谢您的帮助 更新: 我想澄清一下,我说的是用户AuthCookie 是的,您可以向身份验证cooki

在我的应用程序中,我有一个db表,其中包含一个用户列表和一个相关的部门表。只要用户模型是我正在操作的当前对象的一个属性(从数据库中检索),我就可以“深入”访问用户的部门名称…或属于该用户obj属性的任何其他信息

我希望能够对当前经过身份验证的用户执行相同类型的数据访问…这显然是一个完全不同的模型。有谁能告诉我,是否有一种方法可以将属性附加到经过身份验证的用户模型,或者至少将其绑定到现有对象

提前感谢您的帮助

更新:
我想澄清一下,我说的是用户AuthCookie

是的,您可以向身份验证cookie添加其他信息,但您需要自己生成FormsAuthenticationTicket和cookie

设置userdata的一个好例子是


将其取回的示例是

是的,您可以向身份验证cookie添加其他信息,但您需要自己生成FormsAuthenticationTicket和cookie

设置userdata的一个好例子是


把它拿回来的一个例子是

有一个名为NuGet的包,它简化了在auth cookie中插入自定义数据所需的代码

例如,要存储数据,请执行以下操作:

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"]; 

有一个名为的NuGet包简化了在auth cookie中插入自定义数据所需的代码

例如,要存储数据,请执行以下操作:

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"]; 

感谢find-Feel“错误”在每次请求时查询数据库中的特定信息感谢find-Feel“错误”在每次请求时查询数据库中的特定信息