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”。登录失败。用户 'Philip-Desktop\Philip' 登录失败