MVC4 C#成员资格注册角色取决于单击的按钮



我正在MVC4中创建一个站点,这是我第一次在.NET中使用MVC,我已经了解了登录和注册。我有这样的场景:

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

因此,用户在注册时单击按钮"a",将被分配角色"a";当代理"B"注册时,将自动分配角色"B"。我希望避免使用变量来阻止人们覆盖选择。

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

AccountModels.cs 中将bool IsAgentA添加到您的RegisterModel class

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;}
    }

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

然后在AccountController中修改您的Register ActionResult如下:

[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);
        }

最新更新