我很陌生,所以发现有点困难。我已经看到了我试图在这里解释的内容(Adding columns to AspNetUserClaims in ASP.NET Identity),但我正在寻找另一种解决方案,我不需要编辑太多的当前实现我已经搜索过互联网而无法找到任何内容明确的解释或我到底需要什么。据我所知,索赔具有类型和价值,我需要的是类型,价值,并需要在索赔中添加页面名称。所以我的声明将是三个被检查的值,它们将是ClaimType,ClaimValue和PageName。只是为了澄清,我使用的是我认为是Claims类的默认实现。
这是我的ApplicationDbContext.cs
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
Configuration.ProxyCreationEnabled = false;
Configuration.LazyLoadingEnabled = false;
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
public System.Data.Entity.DbSet<Application.Models.Claims> Claims { get; set; }
}
我的ApplicationUser.cs
public class ApplicationUser : IdentityUser
{
[Required]
public string FirstName { get; set; }
[Required]
public string Surname { get; set; }
//This method is responsible for getting the authenticated user identity
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager, string authenticationType)
{
var userIdentity = await manager.CreateIdentityAsync(this, authenticationType);
return userIdentity;
}
}
正如我所说,我真的很陌生,所以我真的在这里尝试,如果我忘记了你可能需要帮助的任何事情,请告诉我。我不确定是否有一种方法可以继承和添加更多列,我认为AspNetUserClaims表使用IdentityUserClaim类。我一直试图这样做几天但不能这样做,如果可能的话,真的很感激任何帮助。