2010-01-07 5 views
1

나는 잠시 동안 내 머리를 긁적이지만 아직도 그것을 얻을 수 없다. MVC2 응용 프로그램에서 사용자로 로그인하려고합니다.MVC에서 사용자를 로그인 할 수 없습니다!

나는 시도하려고 노력했지만 아직 내가 뭘 잘못하고 있는지 알 수없는 모든 것을 시도했다. 이 중 하나가 (이 작동하지 않습니다으로) 옳은 일 경우

FormsAuthentication.SetAuthCookie(emailAddress, rememberMe); 
var cookie = FormsAuthentication.GetAuthCookie(emailAddress, rememberMe); 
HttpContext.Response.Cookies.Add(cookie); 
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(emailAddress, rememberMe, 15); 
FormsIdentity identity = new FormsIdentity(ticket); 
GenericPrincipal principal = new GenericPrincipal(identity, new string[0]); 
HttpContext.User = principal; 

잘 모르겠어요 : 는 여기에 내가 시도 몇 가지 있습니다. HttpContext.User = principal 설정 후 Request.IsAuthenticated == true. 그러나 Global.asax에 내가이 있습니다

HttpCookie authenCookie = Context.Request.Cookies.Get( 
    FormsAuthentication.FormsCookieName); 

지금까지 사용할 수있는 유일한 쿠키는 ASPNET 세션 쿠키입니다.

전혀 아이디어가 없습니까?

+0

새로운 기본 ASP.NET MVC 2 프로젝트가 작동하지 않는다고 말하는가? 그렇지 않다면 기본 프로젝트를 사용해 보았는가? – Eilon

+0

기본 mvc2 프로젝트가 작동합니다. 내가 어떻게 망쳐 놓았는지 모르겠다! – devlife

답변

1

너무 많은 작업을하고 있습니다. 그것은 누군가를 기록하는 하나의 함수 호출이됩니다 여기에 새로운 MVC 2 응용 프로그램에서 상용구 코드입니다 :.

private bool ValidateLogOn(string userName, string password) 
    { 
     if (String.IsNullOrEmpty(userName)) 
     { 
      ModelState.AddModelError("username", "You must specify a username."); 
     } 
     if (String.IsNullOrEmpty(password)) 
     { 
      ModelState.AddModelError("password", "You must specify a password."); 
     } 
     if (!MembershipService.ValidateUser(userName, password)) // this is the login 
     { 
      ModelState.AddModelError("_FORM", "The username or password provided is incorrect."); 
     } 

     return ModelState.IsValid; 
    } 

참고 주석 라인. 로그인 만하면됩니다. 질문에서 귀하의 코드에 ValidateUser (으)로 전화하지 않으 셨습니다. 너 그거 필요해.

+0

ValidateLogOn은 내 문제가 아닙니다. 내가 그 모든 것을 가지고있는 유일한 이유는 작동하지 않기 때문입니다. – devlife

+0

그래, 내가 제외한 모든 것을 제거했습니다. FormsAuthentication.SetAuthCookie (emailAddress, rememberMe); 여전히 작동하지 않습니다. ValidateLogOn은 실제 로그인을 수행하지 않습니다. 자격 증명이 데이터 저장소에 있는지 확인합니다. 다른 의견은 있습니까? – devlife

+0

기본 MVC 프로젝트에서 나머지'AccountController.cs'를 읽으십시오. 'LogOn' 액션은 먼저'ValidateLogOn'을 호출하고,'FormsAuth.SignIn'을 호출합니다. –

관련 문제