繁体   English   中英

使用身份提供者在asp.net mvc 4应用程序中添加角色

[英]adding roles in asp.net mvc 4 application using identity provider

我有一个ASP.NET MVC 4 Web应用程序“ APP1”,该应用程序具有使用DB First方法实现的实体框架。 我正在使用自动生成的Account model ,- views和- controller进行身份验证。

到目前为止,一切似乎还不错。 我可以添加新用户并登录。我现在的问题是: 如何向用户添加角色? 我基本上只需要1个角色。

附加信息

我做了2个小修改:

  • 我使用其他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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM