gpt4 book ai didi

asp.net-mvc-5 - 扩展 IdentityRole 和 IdentityUser

转载 作者:行者123 更新时间:2023-12-03 13:23:26 25 4
gpt4 key购买 nike

我正在使用 ASPNet Identity 在我的 Web 应用程序中实现安全性。

有一个要求,我需要扩展IdentityRole 和IdentityUser。

这是我扩展 IdentityUser 的代码。

public class ApplicationUser : IdentityUser
{
public virtual User User { get; set; }
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("name=CoreContext")
{
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);

modelBuilder.Entity<IdentityUser>()
.ToTable("AspNetUsers");
modelBuilder.Entity<ApplicationUser>()
.ToTable("AspNetUsers");
}
}

我唯一的问题是 IdentityRole

最佳答案

要扩展 User ,请更新您的 ApplicationUser类(位于 IdentityModels.cs )到

public class ApplicationUser : IdentityUser
{
public async Task<ClaimsIdentity>
GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
var userIdentity = await manager
.CreateIdentityAsync(this,
DefaultAuthenticationTypes.ApplicationCookie);
return userIdentity;
}

public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }

// Use a sensible display name for views:
[Display(Name = "Postal Code")]
public string PostalCode { get; set; }

}

要扩展角色,请创建一个类 ApplicationRole.cs
public class ApplicationRole : IdentityRole
{
public ApplicationRole() : base() { }
public ApplicationRole(string name) : base(name) { }
public string Description { get; set; }
}

并在 IdentityConfig.cs 中添加类文件 :
public class ApplicationRoleManager : RoleManager<ApplicationRole>
{
public ApplicationRoleManager(
IRoleStore<ApplicationRole,string> roleStore)
: base(roleStore)
{
}
public static ApplicationRoleManager Create(
IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context)
{
return new ApplicationRoleManager(
new RoleStore<ApplicationRole>(context.Get<ApplicationDbContext>()));
}
}

现在清除旧数据库,运行应用程序并注册用户。它将在 AspNetUsers 表中创建另外 3 个字段(地址、城市、州),并在 AspNetRoles 表中创建另外一个字段(描述)。就是这样。

欲了解更多信息,请访问网站:
Extending Identity Role

关于asp.net-mvc-5 - 扩展 IdentityRole 和 IdentityUser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com