2012-11-25 3 views
0

MVC 응용 프로그램에서 자체 폼 인증보기를 만들려고하지만 내 사이트가 로그인 기능을 찾지 못하는 것으로 보입니다. 내가 먼저 regulr보기를 만들고, Ajax를 사용하여 함수를 호출하려고하지만 그것은 작동하지 않았다, 그래서 나는 양식을 사용하고 다음과 같이 제출하려고 : 나는 또한 웹에 선언 물론MVC3 응용 프로그램의 로그인 페이지 - 로그인 기능을 찾을 수 없습니다.

<form method="post" action="~/Login/Login_btnClick"> 

<input type="submit" name="Login" value="Login" /> 

그것의 형식 인증을 구성, 및 링크로 로그인 페이지를 설정 : 내 자바 스크립트와 CSS 파일을 찾을 수 있도록

<authentication mode="Forms"> 
    <forms loginUrl="~/Login/Login" defaultUrl="~/Home/index" /> 
</authentication> 
<authorization> 
    <deny users="?" /> 
</authorization> 

나는 또한 사용 위치. 내가 가진 것처럼

자원을로드하지 못했습니다 :

<location path="Controllers"> 
<system.web> 
    <authorization> 
    <allow users="*"/> 
    </authorization> 
</system.web> 
: 서버가 400 (잘못된 요청)의 상태

오류 응답, 나는 위치에 또한 컨트롤러 폴더를 추가하려

하지만 여전히 날 같은 오류가 발생했습니다 ....

내 문제를 해결할 수있는 방법이 있습니까?

감사합니다.

답변

2

양식 제출을 처리 할 해당 컨트롤러 조치를 작성해야합니다.

<form method="post" action="/Login/LogOn"> 
    <input type="submit" name="Login" value="Login" /> 
</form> 

은 당신이 당신의 Login 컨트롤러에서 LogOn 조치를 작성해야합니다 : 그래서 예를 들어, 당신은 다음과 같은 형식이있는 경우

또한
[HttpPost] 
public ActionResult LogOn() 
{ 
    ... 
} 

당신이 당신의 Web.config에서 표시 한 조각하는 당신 Controllers 폴더에 액세스 할 수 없도록 설정하는 것은 절대 필요하지 않습니다. ASP.NET MVC 컨트롤러에서 컴파일 된 및 응용 프로그램을 배포 할 때 이러한 폴더가 전혀 존재하지 않습니다.

ASP.NET MVC의 권한 외에도 [Authorize] 특성으로 제어되며 <authorization> 태그를 사용하는 web.config 특성으로 제어되지 않습니다.

[Authorize] 
public ActionResult Index() 
{ 
    ...  
} 

여기 some tutorials있는 ASP.NET MVC 사이트에서 구현할 수있는 방법을 보여줍니다 예를 들어 당신이 인증 된 사용자가 액세스되는 특정 컨트롤러 액션을 보호하려는 경우 그래서 당신은 단순히이 속성을 장식 MVC 응용 프로그램에서 인증 및 권한 부여.

또한 인터넷 템플리트를 사용하여 새 ASP.NET MVC 3 응용 프로그램을 만들면 이미 생성 된 AccountController와 해당보기가 이미 있습니다. 이 기본 템플릿을 사용하여 개념을 더 잘 이해할 수 있습니다. 1 :

0

덕분에, 나는이 일을 했어야

솔루션을 .... 얻었다.그것이 있어야 그래서 내 양식에

<allow users="?" /> 
  1. 변경 작업을 : 다음

    <deny users="?" /> 
    

    에에게 변경 Url.Action @ ("MyLoginFunc", "MyLoginController")

관련 문제