gpt4 book ai didi

c# - Rolemanager 在 Identity 2.0 中始终为 null

转载 作者:行者123 更新时间:2023-11-30 13:12:55 24 4
gpt4 key购买 nike

我看到了这个问题。但答案对我不起作用。

我创建了一个空的 asp.net 网站。 .NET 4.5

我通过 Install-Package Microsoft.AspNet.Identity.Sample -pre 在 nuget 中安装了示例

我无法让初始化程序运行。所以我做了以下

 public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());
this.Database.Initialize(true);
}

static ApplicationDbContext()
{
// Set the database intializer which is run once during application start
// This seeds the database with admin user credentials and admin role
//

}` `

public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}

Rolmanager 始终为空。我尝试了其他答案,但它们从未奏效。除了上面显示的以外,我没有更改示例。那么为什么它不起作用?数据库和表是创建的。 rolemanager 在下面使用并且为 null。

 public static void InitializeIdentityForEF(ApplicationDbContext db)
{
var userManager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
var roleManager = HttpContext.Current.GetOwinContext().Get<ApplicationRoleManager>();
const string name = "admin@example.com";
const string password = "Admin@123456";
const string roleName = "Admin";

//Create Role Admin if it does not exist
var role = roleManager.FindByName(roleName);
if (role == null)

最佳答案

我试试这个,问题解决了。

在「App_Start\Startup.Auth.cs」

public partial class Startup
{
// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context, user manager and role manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
...
}
}

只是

引用 HttpContext.GetOwinContext().GetUserManager<AppRoleManager>() return null

关于c# - Rolemanager 在 Identity 2.0 中始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25439067/

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