Program Tip

IIS의 ASP.NET MVC3 및 Windows Auth가 계속 / Account / Login으로 리디렉션됩니다.

programtip 2020. 12. 13. 10:28
반응형

IIS의 ASP.NET MVC3 및 Windows Auth가 계속 / Account / Login으로 리디렉션됩니다.


MVC3 및 Windows 인증 웹 응용 프로그램을 실행하고 있습니다. IIS6에 배포하면 인증이 필요한 페이지를 찾을 때까지 훌륭하게 실행됩니다. 그런 다음 내 응용 프로그램에 추적이없고 web.config가 Windows 인증으로 구성된 경우 / Account / Login으로 자동 리디렉션됩니다.

어떤 아이디어?

내 전체 web.config 파일은 다음과 같습니다. http://pastie.org/1568510


애플리케이션의 bin 디렉토리에 WebMatrix.Data.dll 및 / 또는 WebMatrix.WebData.dll이 배포되어 있는지 확인합니다 . 해당 파일이있는 경우 (사용하지 않는 경우) 해당 파일을 제거하고 인증이 필요한 페이지에 액세스 해보십시오.


RTM <appSettings>에서 Web.config다음 을 추가하십시오 .

<add key="enableSimpleMembership" value="false" />

( ASP.NET MVC 3 베타에서 Windows 인증을 독점적으로 사용하여 문제가 발생했습니다 .)


여전히 문제가 있는지 확실하지 않지만 추가해보십시오.

<add key="autoFormsAuthentication" value="false" />

appSettings의 web.config에 추가합니다. here and here 에 따르면 문제가 해결됩니다.


다음을 appSettings (web.config)에 추가하여 로그인 URL에 대한 WebMatrix.dll 기본값을 재정의 해보십시오.

<add key="loginUrl" value="~/Account/LogOn"/>

WebMatrix.dll은이 키가 구성 파일에 설정되어 있지 않으면 로그인 Url을 / Account / Login으로 설정합니다. 저에게 적합합니다.


RTM에서 Web.config에 추가해보십시오.

<add key="enableSimpleMembership" value="false" />

위의 게시물이 작동합니다. +1 배포 가능한 종속성을 추가 하기 전에이 추가 하십시오 .


내 MVC4 프로젝트에서 동일한 문제가 발생했으며 내 프로젝트에만 익명 인증이 완전히 비활성화되어 있으므로 항상 Windows 인증이 필요합니다.

내 bin 폴더에 WebMatrix. *가 없으며 autoFormsAuthentication 및 enableSimpleMembership 키를 appSettings에 추가해도이 작업이 수행되지 않았습니다.

대신 다음을 주석 처리해야했습니다.

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

그리고 이것을 다음으로 바꿉니다.

<authentication mode="Windows" />

그게 속임수였습니다.


나는 nopCommerce 2.65를 사용하고 있었고이 문제가있었습니다.

bin 폴더에 WebMatrix.Data.dll이나 WebMatrix.WebData.dll을 배포하지 않았지만

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false" />

web.config에서 해결했습니다.


"login.aspx url redirection problem with MVC + IIS 7"을 재정의하는 또 다른 방법은 ... 이것을 appSettings (web.config)에 추가하여 :

<authentication mode="Forms">
<!--<forms loginUrl="~/Account/Login" timeout="2880" />-->
<forms loginUrl="~/Home" timeout="2880" />
</authentication>

... 이것은 나를 위해 문제를 해결했습니다.


이 방법으로 수정했습니다.
1) IIS로 이동
2) 프로젝트를 선택합니다.
3) "인증"을
클릭합니다. 4) "익명 인증"을 클릭하고> 편집> "특정 사용자"대신 "응용 프로그램 풀 ID"를 선택합니다.
5) 완료.


IIS의 모든 인증 설정이 올바른지 확인하십시오.

나를 위해 / Account / Login으로 리디렉션 된 응용 프로그램은 익명 인증이 활성화 된 사이트 내에서 실행 중이었습니다. 사이트에서 이것을 비활성화하고 응용 프로그램에 대해 활성화 한 후 (Windows 인증과 함께) 괜찮 았습니다.


서버의 IIS로 이동하여 인증 모드로 이동하여 폼 인증을 비활성화 할 수도 있습니다.

이것은 데모에서 머리를 긁적입니다. 당황.


나는 이것이 매우 오래된 게시물이라는 것을 알고 있습니다. 하지만 MVC 4에서 MVC 5로 업그레이드 하는 방법에 대한 자습서 를 살펴본 후이 문제 를 만났습니다 . 그래서 다른 사람이 내가 한 실수를 저지르는 경우를 대비 하여이 문제 를 해결했습니다. 내 문제는 내 참조를 업그레이드하는 동안 실수로 'Microsoft.AspNet.WebPages.WebData'를 내 프로젝트에 추가 한 것입니다.

"Uninstall-Package Microsoft.AspNet.WebPages.WebData"를 실행하면 내 인증이 이전의 영광으로 복원되었습니다.


4.6 프레임 워크 용 MVC에서는 두 가지 방법으로 수행됩니다. 첫 번째는 예상대로 Web.Config에 있고 두 번째는 프로젝트 파일에서 수행되며 IIS Express를 구성하는 데 사용됩니다.

<PropertyGroup>
..
    <IISExpressAnonymousAuthentication>enabled</IISExpressAnonymousAuthentication>
    <IISExpressWindowsAuthentication>disabled</IISExpressWindowsAuthentication>
</Property

Windows 인증을 비활성화하고 개발시 익명을 사용하지만 응용 프로그램 배포에는 사용되지 않습니다.

참고URL : https://stackoverflow.com/questions/5009565/asp-net-mvc3-and-windows-auth-on-iis-keeps-redirecting-to-account-login

반응형