2012-04-27 4 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 : 내 사용자의 역할을 저장할 수 있습니까?

내 단순화 된 계정 컨트롤러 :

(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(); 
    } 
+0

기본 멤버 자격 공급자를 사용하고 있습니까? 또한, 귀하의 비밀 번호에 대한 암호화를 사용하지 않는 것 같습니다, 이것은 많은 보안 구멍을 열 것입니다. – ianaldo21

+0

다음 5 부분 튜토리얼을 따랐습니다. http://www.youtube.com/watch?v=HXfhPj1rlQ8 – Misi

답변

0

위의 링크에서 빠른보기는 세션에서 사용자의 역할을지고 있음을 보여줍니다 당신이 INFOR을 저장하는 곳

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

나도 몰라 : 사용자는 예를 들어,에 로그인 사용자가 어떤 역할을하고 있는지에 대한 정보.

+0

역할 및 사용자에 대한 정보는 * 사용자 * 엔티티 (EF)에 저장됩니다. home-madeAccountController에서 세션 값을 어디에서 설정합니까? (위의 YouTube 링크 참조) – Misi

+0

사용자가 성공적으로 로그인하면 데이터베이스에서 역할을 가져 와서 그 시점에서 세션 값을 설정합니다. –

+0

CustomAuthorizeAttribute 클래스의 사용자를 채우는 방법은 괜찮습니까? – Misi

관련 문제