2014-12-03 4 views
0

저는 .NET과 보안이 매우 새로 도입되었습니다. 양식 인증을 구현하기로했습니다 (다른 것을 사용해야하는 경우 수정하십시오). 내가 인터넷에서 수집 한 바로는, 나는 다음과 같은했지만 제대로 동작하지 않습니다 :MVC5 양식 인증이 작동하지 않습니다.

의 Web.config

<authentication mode="Forms"> 
    <forms loginUrl="~/Home/Index" timeout="30" /> 
</authentication> 

HTTPPost 아약스 로그인 방법 : UserService 실제 로그인 코드와

[HttpPost] 
     public ActionResult Login(LoginInputModel loginModel) 
     { 
      if (ModelState.IsValid) 
      { 
       var success = UserService.Login(loginModel.Password, loginModel.Email); 
       if (success) 
       { 
        return Json(new { Url = Url.Action("Index","Home") }); 
       } 
       loginModel.ErrorMessages = "Failed to log in with these credentials. Please try again."; 
       return PartialView("Widgets/Login/_LoginInput", loginModel); 
      } 
      return PartialView("Widgets/Login/_LoginInput", loginModel); 
     } 

클래스 :

public static bool Login(string password, string email) 
     { 
      var user = Connector.GetUserByCredentials(password, email); 
      if (user == null) return false; 
      FormsAuthentication.SetAuthCookie(email, false); // this line 
      SessionService.Delete(UserSessionKey); 
      SessionService.Store(UserSessionKey, UserMapper.DbUserToUser(user)); 
      return SessionService.HasKey(UserSessionKey); 
     } 

로그인 할 때마다 페이지가 새로 고쳐집니다. 나는 다른 내용을 보았습니다.)하지만 다른 페이지로 이동하면 다시 로그인 페이지로 리디렉션됩니다. 나는 무엇을 잘못하고 있는가?

더 많은 코드가 필요하면 기꺼이 게시 해 드리겠습니다.

+0

은 왜 <형태 loginUrl = "~/홈/색인"타임 아웃 = "30"/>''합니까이 줄을 제거해야? 예를 들어 컨트롤러의'Login()'메소드 여야합니다./Account/Login' –

+0

Home/Index는 계정/로그인으로가는 로그인 위젯을 포함하고있는 첫 번째 페이지입니다. 로그인 페이지로 리디렉션하고 싶다면 Home/Index – PoeHaH

답변

11

MVC5를 사용할 때 사용하는 Visual Studio 버전은 무엇입니까? 원래 기본 마법사로 만든 응용 프로그램을 사용하고 있습니까?

기본 마법사로 응용 프로그램을 만든 경우 기본적으로 ASP.NET ID가 사용되며 처리에서 FormsAuthentication 모듈이 제거됩니다. FormsAuth를 계속 사용하려면 FormsAuthentication 모듈의 web.config에서 "제거"키를 제거해야합니다.

당신은

<system.webServer> 
    <modules> 
     <remove name="FormsAuthentication" /> <----**** 
    </modules> 
</system.webServer> 
+0

이어야합니다. 정말로 문제였습니다.) 지금 바보 같아요 ^^ – PoeHaH

+1

@PoeHaH - 필요 없어요, 모호 해요 ... 대부분의 사람들은 ASP.NET ID를 사용하고 FormsAuthentication으로 되돌리려하지 마십시오. –

+0

양식 승인을 남겨두고 신원 정보로 이동해야합니까? 거기 밖으로 좋은 초보자 자습서 거기 내 아이덴티티 작업 내 자신의 사용자 데이터베이스를 가질 수 있습니까? – PoeHaH