저는 .NET 및 MVC3을 새로 도입했으며 현재 오랫동안 유지되어 온 클래식 ASP 사이트를 MVC3 응용 프로그램 사이트로 변환하는 중입니다.<location> 속성 내 MVC3 <인증> 및 <인증>
동일한 사이트에는 고유 한 로그인 페이지와 액세스 및 보안의 개별 레벨이 필요한 네 개의 영역이 있습니다. 나는 내 응용 프로그램의 내부 영역을 설정할 수 다음 설정 <location>
속성을 사용하려면, 대신
<authentication mode="Forms">
<forms loginUrl="~/Account/Logon" timeout="2880" />
</authentication>
: 이것은 내가 내 web.config 파일에서 기본 코드를 사용하지 않으려는 의미 각 인증에 대한 인증 및 권한 부여 규칙. 나는이 세 줄을 제거하면
<location path="AreaName">
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/AreaName/Login" timeout="15" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
: 그래서 예를 들어 내가 경로에의 전망에 액세스하려고 "AREANAME"때 그런
<authentication mode="Forms">
<forms loginUrl="~/AreaName/Login" timeout="15" />
</authentication>
을 나는 ~/다시 처음 리디렉션 계정/로그온.
Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.
나는이 오류에 대해 검색하고 만든 제안 중 어느 것도 적용 보이지 않는다 : 나는 다시 그 세 줄을 두는 경우에, 나는 다음과 같은 오류가 발생합니다. 나는 로직 대신 컨트롤러에 놓아야 할 웹 설정 대신에 하나의 대답을 보았지만 그 방법은 여전히 전체 사이트에 기본값 <authentication>
을 사용한다는 것을 의미합니다.
왜 내 <authentication>
속성을 <location>
안에 넣을 수 없는지 알 수 없습니다. 이것에 대한 도움이 가장 감사 할 것입니다.
이 질문에 잘못 말하면 사과드립니다.
ASP.NET 프레임 워크의 Machine.config 파일에서 인증 섹션에 allowDefinition = "MachineToApplication"이 (가) 설정되어 있기 때문인 것으로 보입니다. 그래서 내 질문에 것 같아요, 거기에 machine.config에 설정을 over-ride하고 내 응용 프로그램 web.config 파일에서'allowDefinition = "Everywhere"를 말하도록 설정합니까? – Peter