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"];

Q: ユーザーのロールはどこに保存すればよいですか?

私の簡略化されたアカウントコントローラー:

    [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 に答える