2012-04-27 17 views
0

私はこのチュートリアルを以下のよlinkASP.NET MVCカスタム認可:AuthorizeAttribute

私はユーザーが {iduser、ユーザーは、パス、役割}テーブル

私は、このユーザーを使用していますがあります: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(); 
    } 
+0

デフォルトのメンバーシッププロバイダを使用していますか?また、あなたのパスワードに暗号化を使用していないように見えます。これにより、多くのセキュリティホールが開かれます。 – ianaldo21

+0

私はこの5つのパートのチュートリアルに従いました:http://www.youtube.com/watch?v=HXfhPj1rlQ8 – Misi

答えて

0

上記のあなたのリンクを簡単に見てみると、それはセッションからユーザーの役割を取得していることを示しています

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

ので、あなたは時にセッション値を設定する必要がありますユーザーはログインします。例えば、

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

私はあなたが情報をどこに保存するのか分かりませんユーザーがどのような役割を果たしているかについての話です。

+0

ロールとユーザーに関する情報は、*ユーザー*エンティティ(EF)に保存されています。 home-madeAccountControllerにセッション値を設定するには(上記のYouTubeのリンクを参照) – Misi

+0

ユーザーが正常にログインすると、データベースから役割を取得し、その時点でセッション値を設定します。 –

+0

CustomAuthorizeAttributeクラスのユーザーをどのように作成したのですか? – Misi

関連する問題