Asp.net mvc 4 如何自动将用户添加到角色

Asp.net mvc 4 如何自动将用户添加到角色,asp.net-mvc-4,Asp.net Mvc 4,我正在构建一个小型MVC4网站,并使用SimpleMembershipProvider和SimpleRoleProvider 我已经为我的数据库设定种子,[webpages_Roles]包含“管理员”和“用户” (与此类似:) 帐户和用户配置文件模型的一切都与MVC4项目创建时一样 现在,我如何使某人注册时,他们自动被置于“用户”角色中?通常,您的所有用户注册逻辑都将驻留在您的帐户控制器中(如果您为Internet应用程序使用其中一个提供的模板,则肯定会出现这种情况)。因此,您需要向注册方法添加

我正在构建一个小型MVC4网站,并使用SimpleMembershipProvider和SimpleRoleProvider

我已经为我的数据库设定种子,[webpages_Roles]包含“管理员”和“用户” (与此类似:)

帐户和用户配置文件模型的一切都与MVC4项目创建时一样


现在,我如何使某人注册时,他们自动被置于“用户”角色中?

通常,您的所有用户注册逻辑都将驻留在您的帐户控制器中(如果您为Internet应用程序使用其中一个提供的模板,则肯定会出现这种情况)。因此,您需要向注册方法添加代码,以便在成功创建用户帐户后将其添加到用户角色

这比试图观察一个事件(即使存在一个事件)更简单、更整洁。你应该发现,在一个精心设计的应用程序中,你的注册码只会出现在一个地方。如果您使用的是社交网络登录(如Facebook),这还允许您处理OAuth场景

e、 g.这就是如何在Internet应用程序模板中使用现成的AccountsController(用于本地站点注册)


是否有任何用户创建/注册的事件可供我监听?太简单了,谢谢。:)
[Authorize]
[InitializeSimpleMembership]
public class AccountController : Controller
{
    ... various actions ...

    // GET: /Account/Register
    [AllowAnonymous]
    public ActionResult Register() {
        return View();
    }
    // POST: /Account/Register
    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Register(RegisterModel model) {
        if (ModelState.IsValid) {
            // Attempt to register the user
            try {
                WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
// ----------------- NEW LINES HERE
                Roles.AddUserToRoles(model.UserName, new[] { "Users" });
// ----------------- END NEW LINES
                WebSecurity.Login(model.UserName, model.Password);
                return RedirectToAction("Index", "Home");
            }
            catch (MembershipCreateUserException e) {
                ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }

    ... more actions ...
}