使用身份提供者在asp.net mvc 4应用程序中添加角色
本文关键字:应用程序 添加 角色 mvc net 身份 提供者 asp | 更新日期: 2023-09-27 18:25:07
我有一个ASP.NET MVC 4 Web应用程序"APP1",它使用DB First方法实现了实体框架。我正在使用自动生成的Account
-model
、-views
和-controller
进行身份验证。
到目前为止,一切似乎都很好。我可以添加新用户并登录。我现在的问题是:如何向用户添加角色我基本上只需要一个角色。
附加信息
我做了两个小修改:
- 我用一个额外的EmailAdress属性扩展了AccountModel
- 我更改了ConnectionString属性,因此使用的是我的EF SQL Server实例,而不是LocalDb
以下表格是在我的EF SQL Server数据库中自动生成的
- dbo.UserProfile
- dbo.webpages_Membership
- dbo.webpages_OAuthMembership
- dbo.webpages_Roles
- dbo.webpages_UsersInRoles
更新
我最终手动创建了它们。请参阅下面的TSQL代码
INSERT INTO webpages_Roles (RoleName) VALUES ('canEdit')
INSERT INTO webpages_UsersInRoles (UserId, RoleId) VALUES (2, 1)
为了使ActionResult
仅适用于具有特定角色的授权人员,我对其进行了如下装饰:
[Authorize(Roles = "canEdit")]
public ActionResult Index()
{
// return View();
}
对于Identity v1,代码为:
var username = "Fred";
var roleName = "Administrator";
Roles.AddUserToRole(username, roleName);
如果您正在使用Identity v2(假设您有userManager对象):
var username = "Fred";
var roleName = "Administrator";
var user = await userManager.FindByNameAsync(username);
userManager.AddToRole(user.Id, roleName);