使用 ASP.net MVC 创建新用户时设置角色

Posted

技术标签:

【中文标题】使用 ASP.net MVC 创建新用户时设置角色【英文标题】:Setting role when creating new user with ASP.net MVC 【发布时间】:2011-07-26 12:40:07 【问题描述】:

我正在查看默认的 ASP.net MVC 2 控制器。

如何为注册方法中创建的新用户设置角色?

这是否可能只使用一个简单的属性集,还是我必须做一些特别的事情?

【问题讨论】:

【参考方案1】:

只需将下面的第二行添加到您的 AccountController 中:

if (createStatus == MembershipCreateStatus.Success)

    FormsService.SignIn(model.UserName, false /* createPersistentCookie */);
    Roles.AddUserToRole(model.UserName, "RoleNameHere");
    return RedirectToAction("Index", "Home");

编辑:如果您尚未创建角色(您只需创建一次。),它将导致异常。

只需将下面的代码放在 AddUserToRole 方法上方即可。

    if (!Roles.RoleExists("RoleNameHere"))
        Roles.CreateRole("RoleNameHere")

【讨论】:

谢谢你,它帮助了我。由于 accountcontroller 模板已更改,如果有人可以为 ASP.NET MVC 4 更新此答案,那就太好了。我在 Register 方法中调用 WebSecurity.Login 之后添加了新行。 ExternalLoginConfirmation 方法也可能需要更改。

以上是关于使用 ASP.net MVC 创建新用户时设置角色的主要内容,如果未能解决你的问题,请参考以下文章

在标准 ASP.NET MVC 安装模板中模拟用户

在 Asp.net Identity MVC 5 中创建角色

如何在 ASP.NET MVC 中手动设置用户角色?

ASP.NET Core 3.1 MVC 如何让用户在注册时选择自己的角色?

Asp.Net Mvc 使用用户角色编辑用户配置文件

ASP.NET MVC:显示用户角色