2011-05-13 2 views
0

MVC 3 응용 프로그램에 폼 인증을 사용하고 있습니다. 내 구성에서이 줄을 추가했습니다 :폼 인증을 사용할 때 ASP.NET MVC 3 오류가 발생했습니다.

<authorization> 
<allow roles="Administrator"/> 
<deny users="*"/> 
</authorization> 

내가 (내 로컬 상자) 응용 프로그램을 실행할 때 나는 오류가 아래와 CSS 스타일 중 어떤 것도 나오지 얻을. 그러나 로그인 할 때 모든 것이 정상적으로 보입니다. 그래서 나는 두 가지 질문이 있다고 생각합니다.

  1. 승인 규칙을 web.config에 추가하는 것이 가장 좋으며 컨트롤러의 [Authorize] 속성에 추가해야합니까?
  2. web.config에 인증 규칙을 추가 할 때 아래에 나열된 오류 만 발생합니다. 나는 무엇을 놓치고 있습니까?

도움을 받으실 수 있습니다. 고맙습니다.

p.s. 나는 인터넷 익스플로러 8 개

웹 페이지 오류 세부

을 사용하고

사용자 에이전트 : Mozilla/4.0 (호환; MSIE 8.0; 윈도우 NT 5.1; 삼지창/4.0; GTB6.5; .NET CLR 2.0 0.50727; InfoPath.2, .NET4.0C, .NET4.0E, .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) 타임 스탬프 : 2011년 5월 13일 (금) 15시 48분 19초 UTC

메시지 : 구문 오류 줄 : 1 문자 : 1 코드 : 0 URI : http://localhost:1361/Account/LogOn?ReturnUrl=%2fScripts%2fjquery-1.4.4.min.js

메시지 : 구문 오류 줄 : 1 문자 : 1 코드 : 0 URI : http://localhost:1361/Account/LogOn?ReturnUrl=%2fScripts%2fjquery.validate.min.js

메시지 : 구문 오류 줄 : 1 문자 : 1 코드 : 0 URI : http://localhost:1361/Account/LogOn?ReturnUrl=%2fScripts%2fjquery.validate.unobtrusive.min.js

답변

1

(특정 폴더에 대한 액세스를 허용 같은) 문제는 CSS 파일이 사용자의 권한 부여 규칙에 의해 보호되는 것이있다. web.config에 규칙을 적용 할 때와 Authorize 속성을 통해 적용하는 경우 사이에 다른 이유는 MVC 프레임 워크가 컨트롤러를 통해 디스크에있는 파일에 대한 요청을 보내지 않기 때문에 (디스크에있는) CSS 파일에 대한 요청이, 속성을 보지 마라. 그러나 승인 규칙은 web.config에 있습니다.

해결 방법에는 몇 가지가 있습니다. 둘 중 하나가 정상적으로 작동합니다.

  1. <location> 태그를 사용하면 모든 사용자가 CSS 파일을 요청할 수 있습니다.
  2. web.config의 인증을 건너 뛰고 Authorize 속성을 대신 사용하십시오.이렇게하면 apply the attribute globallyglobal.asax.cs이되므로 모든 컨트롤러에서이 작업을 수행 한 것을 기억할 필요가 없습니다.
관련 문제