2012-11-05 2 views
4

여기에 몇 가지 코드가 있습니다. 작동하지 않습니다; "로그인"후 사용자는 집/색인 페이지로 리디렉션되지 않지만 로그인 페이지가 다시로드됩니다.ASP.NET MVC4를 사용하여 로그인하는 방법은 무엇입니까?

의 Web.config :

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login" /> 
</authentication> 

... 

<defaultDocument> 
    <files> 
    <add value="~/Account/Login"/> 
    </files> 
</defaultDocument> 

컨트롤러/AccountController.cs :

public class AccountController : Controller 
{ 
    // 
    // GET: /Account/Login 
    public ActionResult Login() 
    { 
     return View(); 
    } 
} 

조회수/계정/Login.aspx : 난 당신이 설정되지 않은 의심

<asp:Login ID="login" runat="server" DestinationPageUrl="~/Views/Home/Index.aspx"> 
    ... 
</asp:Login> 
+0

로그인 방법이 비어있는, 그래서 아무도 인증되지 얻을 것이다 ...? 간단한 양식을 확인하려면 [msdn] (http://msdn.microsoft.com/de-de/library/system.web.security.formsauthentication.authenticate.aspx) - 로그인 작업에서 Login_OnClick의 일부가 필요합니다. – metadings

답변

11

로그인에 당신은 더 많은 정보를 찾을 수 있습니까? 그렇지 않다면 인터넷 템플릿을 사용하여 새 ASP.NET MVC 프로젝트를 만들고 계정 컨트롤러를 열고 모양과 방법을 제안하십시오.

는 @의 USER1으로이 작업을 수행 할 수있는 방법 중 하나가

FormsAuthentication.SetAuthCookie(username, true); 
return Redirect(returnurl); 

을 사용하지만 당신이 말한대로, 당신은 당신이 WebSecurity 클래스를 사용해야합니다 ASP.NET MVC 4를 사용했다 바르게있다. 예를 들어

: 대부분의 작업

WebSecurity.Login(model.UserName, model.Password); 
return RedirectToAction("Index", "Home"); 

는 WebSecurity 도우미의 다음 메서드와 속성을 사용하여 수행됩니다 :

  • WebSecurty.UserExists, WebSecurity.CreateUserAndAccount. 이 메소드를 사용하여 누군가가 이미 등록되어 있는지 여부를 판별하고 등록 할 수 있습니다.

  • WebSecurty.IsAuthenticated. 이 속성을 사용하면 현재 사용자가 로그인했는지 여부를 확인할 수 있습니다. 로그인하지 않은 사용자는 로그인 페이지로 리디렉션 할 때 유용합니다.

  • WebSecurity.Login, WebSecurity.Logout. 이 메소드는 사용자를 로그인 또는 로그 아웃합니다.

  • WebSecurity.CurrentUserName. 이 속성은 현재 사용자의 로그인 이름을 표시하는 데 유용합니다 (사용자가 로그인 한 경우).

  • WebSecurity.ConfirmAccount. 이 방법은 등록 확인 이메일을 설정할 때 유용합니다. (자세한 내용은 블로그 게시물 ASP.NET 웹 페이지 보안을위한 확인 기능 사용을 참조하십시오.)

더 읽을 거리 :

2

리디렉션이 작동하지 않는 이유 인 양식 인증 쿠키. 이상적으로, 로그인 방법, 당신은 어떤 논리를 사용하여 사용자 이름과 암호를 확인하고 당신은 사용자가 합법적임을 만족하는 경우, 당신은 당신이 경우 사용자

FormsAuthentication.SetAuthCookie(username, true); 
return Redirect(returnurl); 

리디렉션 다음 폼 인증 쿠키를 설정해야 인증 쿠키를 설정하지 않으면 요청이 여전히 인증되지 않은 요청으로 처리되고 사용자가 로그인 페이지로 다시 전송되므로 리디렉션이 작동하지 않습니다. 형태는 ASP.NET MVC 4의 인터넷 템플릿을 사용하고 여기

http://msdn.microsoft.com/en-us/library/xdt4thhy%28v=vs.71%29.aspx

관련 문제