-1

我正在 MVC4 中创建一个站点,这是我第一次在 .NET 中使用 MVC,我已经完成了登录和注册。我有这种情况:

该网站有角色'A'和角色'B',当用户在我想引导他们到注册页面之前没有注册时,当他们点击他们特定部分的注册部分时,我将他们引导到注册页面. 但是,我希望注册页面根据他们单击的注册按钮自动定义他们的角色。

因此,用户在注册时单击按钮“A”,他们将被分配角色“A”,而当代理“B”注册时,他们将被自动分配角色“B”。我想避免使用变量来阻止人们覆盖选择。

4

1 回答 1

1

有很多方法可以实现它。例如:

添加bool IsAgentA到您RegisterModel classAccountModels.cs

public class RegisterModel
    {
        [Required]
        public string UserName { get; set; }

        [Required]
        [DataType(DataType.Password)]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        public string ConfirmPassword { get; set; }

        public bool IsAgentA {get; set;}
    }

IsAgentA在您的Registration View(是 - 代理 A,否 - 代理 b)中添加单选按钮。我不会在这里写。

然后修改你Register ActionResultAccountController如下:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
   if (ModelState.IsValid)
   {
                try
                {
                    WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
                    WebSecurity.Login(model.UserName, model.Password);

                    if (model.IsAgentA)
                    {
                    Roles.AddUserToRole(model.UserName, "Role A"); // user in role A 
                    }
                    else
                    {
                    Roles.AddUserToRole(model.UserName, "Role B"); // user in role B
                    }

                    return RedirectToAction("Index", "Home");
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            return View(model);
        }
于 2013-08-16T15:36:15.963 回答