aspnetdb 添加角色和用户

Posted

技术标签:

【中文标题】aspnetdb 添加角色和用户【英文标题】:aspnetdb Adding Roles and Users 【发布时间】:2015-05-18 00:41:43 【问题描述】:

在 VS2013 中,他们使用了网站管理工具,您可以使用该工具来设置角色和成员资格。我正在尝试向我的站点添加“管理员”角色并向其中添加我的用户名,但我尝试过的一切都没有奏效。

var roleManager = new RoleManager(new RoleStore(context)); roleManager.Create(new IdentityRole("Administrator"));

var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var user = new ApplicationUser  UserName = "admin" ;
userManager.Create(user, "admin321");
userManager.AddToRole(user.Id, "Administrator");

在我的 MVC5 网络应用程序中运行它。给我以下错误;

在 mscorlib.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理

附加信息:实体类型 IdentityRole 不是当前上下文模型的一部分。

错误产生于; roleManager.Create(new IdentityRole("Administrator"));

【问题讨论】:

听起来您需要覆盖身份设置才能使用您的自定义 IdentityRole 类。无论如何,他们拿走了网站管理工具,但Thinktecture.IdentityManager 完成了这个角色,我相信这是一个由 .NET 基金会赞助的项目。可能值得研究一下。这是 Microsoft 员工的blog post。 不错的实用程序,但不适用于角色,仅适用于用户。 它确实适用于角色。请记住,那篇博文是近一年前写的。显然,该软件已经一年没有停滞不前了! 在构建期间它不会为我构建 nuGet 正在尝试更新解决方案并返回; 1>G:\Downloads\IdentityManager-master\source\.nuget\NuGet.targets(100,9): 错误 MSB3073: 命令 ""G:\Downloads\IdentityManager-master\source\.nuget\NuGet.exe" install "G:\Downloads\IdentityManager-master\source\Host\packages.config" -source "" -NonInteractive -RequireConsent -solutionDir "G:\Downloads\IdentityManager-master\source\ "" exited with code 1.跨度> 您正在尝试从源代码运行 IdentityManager?虽然你可以做到这一点,我敢肯定,我宁愿只使用 NuGet 将其添加到我的应用程序中。他们为您准备了a package。 【参考方案1】:

在这里找到我自己的答案; ASP.Net MVC 4.5 Owin Simple Role Management by Anders G. Nordby

这是创建管理员帐户和分配用户的关键代码;

using (var context = new ApplicationDbContext())
    
        var roleStore = new RoleStore<IdentityRole>(context);
        var roleManager = new RoleManager<IdentityRole>(roleStore);

        roleManager.Create(new IdentityRole("Admin"));

        var userStore = new UserStore<ApplicationUser>(context);
        var userManager = new UserManager<ApplicationUser>(userStore);

        var user = userManager.FindByEmail("my.email@somewhere.com");
        userManager.AddToRole(user.Id, "Admin");
        context.SaveChanges();
    

【讨论】:

以上是关于aspnetdb 添加角色和用户的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C# 中的 ASPNETDB.NET 表中获取用户 ID?

如何添加ASPNETDB.MDF数据库生成水晶报表

无法打开登录请求的数据库“ASPNETDB”。登录失败。用户 'Philip-Desktop\Philip' 登录失败

ASPNETDB.MDF 正在我的 MVC 项目中创建

使用自定义数据库而不是 ASPNETDB 的 ASP.NET MVC 身份验证?

使用 Identity Impersonate 时,我无法访问本地 ASPNETDB.MDF 数据库