0

我正在关注这个教程链接

我有一个表users { iduser, user, pass, role }

我正在使用这个用户:string[] users = db.users.Select(t => t.user).ToArray();

而不是:string[] users = Users.Split(',');可以吗?

我的问题是角色:SiteRoles role = (SiteRoles)httpContext.Session["role"];

问:我在哪里为我的用户存储角色?

我的简化帐户控制器:

    [HttpPost]
    public ActionResult Login(LoginModel model)
    {
        HeliosEntities db = new HeliosEntities();       
        if (ModelState.IsValid)
        {
            bool userok = db.users.Any(t => t.user == model.UserName && t.pass == model.Password);
            if (userok == true) 
            {
                FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
                return RedirectToAction("Index", "Home");
            }
            {
                ModelState.AddModelError("", "Incorect password or user!");
            }
        }

        return View();
    }
4

1 回答 1

0

快速查看上面的链接表明它正在从会话中获取用户的角色:

(SiteRoles)httpContext.Session["role"];

所以需要在用户登录时设置会话值,例如:

var userRole = Roles.Admin | Roles.User;
httpContext.Session["role"] = role;

我不知道您将有关用户角色的信息存储在哪里。

于 2012-04-27T09:54:03.087 回答