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의에서 "승인 '섹션을 제거하면 그것을 잘 작동하지만, 지금은 두 가지 문제가 있습니다 : 내가 넣어- 을 내부 양식 인증 (로그인없이 직접 액세스 할 수 있습니다!)
내가 뭘 잘못하고 있니?
도움 주셔서 감사합니다. web.config에 "~/Secure/AjaxLogin"을 추가하려고 시도했지만 도움이되지 않았습니다. (I 컨트롤러에 완패 경로를했다) : '<위치 경로 = "~/로그인"> <승인> 가있는 <허용 = "*"/> 인증> < 위치 경로 = "~/안전/AjaxLogin"> <승인> 있는 <허용 = "*"/> 인증> ' –
@Yaniv - 당신이 SecureController에 컨트롤러 이름을 변경 했습니까? –
네, 그랬습니다 - 컨트롤러의 이름은 "SecureController"입니다. 그게 문제 야? –