2012-05-22 2 views
0

asp.net 웹 양식에서 MVC4로 프로젝트를 단계적으로 업그레이드하고 있습니다. 첫 번째 단계에서는 로그인 페이지와 몇 개의 다른 페이지를 변경했습니다. 내 자신의 논리 (회원 없음)와 폼 인증을 사용하고 있습니다 - 나는 데이터베이스 테이블에 대해 사용자 이름/암호를 확인합니다. 확인이면 사용자가 목적지로 리디렉션됩니다. 내 로그인 코드는 다음과 같습니다WebForms에서 MVC로 asp.net을 마이그레이션 할 때 폼 인증 문제가 발생합니다.

의 Web.config :

<authentication mode="Forms"> 
    <forms loginUrl="~/LogIn" name=".ASPXFORMSAUTH" timeout="150" /> 
</authentication> 
<authorization> 
    <deny users="?" /> 
</authorization> 

로그인 컨트롤러 :

[AllowAnonymous] 
[HttpPost] 
public ActionResult AjaxLogin(FormCollection postedFormData) 
{ 
    try 
    { 
     string userName = postedFormData["Login_UserName"]; 
     string password = postedFormData["Login_Password"]; 
     UserEntity userEntity = new UserEntity(Utilities.AuthenticateUser(userName, password, 1)); 

     Session["UserEntity"] = userEntity; 

     FormsAuthentication.SetAuthCookie(userEntity.Key.Id.ToString(), false); 

     return Json(new { redirectToUrl = "./AccountSelection", error = "false", lan = Thread.CurrentThread.CurrentUICulture.ToString() }); 
    } 
    catch (Exception ex) 
    { 
     return Json(new { redirectToUrl = "", error = ExceptionHandler.HandleException(ex), lan = Thread.CurrentThread.CurrentUICulture.ToString() }); 
    } 
} 

내가 HTTP 302을 얻을 로그인 다시 재 로그인을 시도

. 내가 Web.config의에서 "승인 '섹션을 제거하면 그것을 잘 작동하지만, 지금은 두 가지 문제가 있습니다 : 내가 넣어
  • 내 웹 양식이되지 않습니다 모든 컨트롤러의 속성 [인증]을해야

    1. 을 내부 양식 인증 (로그인없이 직접 액세스 할 수 있습니다!)

    내가 뭘 잘못하고 있니?

  • 답변

    2

    web.config에서 권한을 정의하는 경우 AllowAnonymousAttribute가 필요하지 않습니다.

    그렇다고해서 AjaxLogin을 인증 목록에 추가하는 것으로 보이지는 않습니다. 그렇지 않으면 Ajax 요청이 차단 될 것이기 때문에 이것이 필요하다. ~/Login과 ~/Account/AjaxLogin 경로가 모두 필요합니다. ~/계정/로그인 경로가 필요할 수도 있지만 확실하지 않습니다.

    +0

    도움 주셔서 감사합니다. web.config에 "~/Secure/AjaxLogin"을 추가하려고 시도했지만 도움이되지 않았습니다. (I 컨트롤러에 완패 경로를했다) : '<위치 경로 = "~/로그인"> <승인> 가있는 <허용 = "*"/> < 위치 경로 = "~/안전/AjaxLogin"> <승인> 있는 <허용 = "*"/> ' –

    +0

    @Yaniv - 당신이 SecureController에 컨트롤러 이름을 변경 했습니까? –

    +0

    네, 그랬습니다 - 컨트롤러의 이름은 "SecureController"입니다. 그게 문제 야? –

    관련 문제