如何扩展User.Identity的可用属性我正在使用MVC5 Identity 2.0登录我的网站,其中身份验证详细信息存储在SQL数据库中。Asp.net Identity已经以标准方式实现,可以在许多在线教程中找到。IdentityModels中的ApplicationUser类已扩展为包含一些自定义属性,例如整数OrganizationId。我们的想法是,可以创建许多用户并将其分配给公共组织以实现数据库关系。public class ApplicationUser : IdentityUser
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
//Extended Properties
public DateTime? BirthDate { get; set; }
public long? OrganizationId { get; set; }
//Key Mappings
[ForeignKey("OrganizationId")]
public virtual Organization Organization { get; set; }
}如何从控制器中检索当前登录用户的OrganizationId属性?一旦用户登录,这是否可通过方法获得,或者每次执行控制器方法时,我是否始终根据UserId从数据库中检索OrganizationId?在网上阅读我看到我需要使用以下内容来登录UserId等。using Microsoft.AspNet.Identity;...User.Identity.GetUserId();但是,OrganizationId不是User.Identity中可用的属性。我是否需要扩展User.Identity以包含OrganizationId属性?如果是这样,我该怎么做呢。我经常需要OrganizationId的原因是许多表查询依赖于OrganizationId来检索与登录用户相关联的与组织相关的数据。
3 回答
- 3 回答
- 0 关注
- 1587 浏览
添加回答
举报
0/150
提交
取消