FormsAuthentication의 LoginUrl을 동적으로 변경하는 방법이 있습니까? 내가 가진 것은 FormsAuth가 보호하는 전체 사이트이지만, 하위 폴더의 일부 페이지에서는 사용자를 다른 로그인 페이지로 이동시키고 FormsAuth가 ReturnUrl 항목을 처리하도록하고 싶습니다. 그럴 수 있습니까 또는 서브 폴더 경우에 대한 자신의 리디렉션 코드를 작성해야합니까?FormsAuthentication LoginUrl 특정 경우에 재정의/변경하는 방법
이<forms loginUrl="~/Splash.aspx" ... />
보호 된 *에서 .aspx 페이지의 모든 내가
<deny users="?">
을 '무엇을 :
이~/LogOn1.aspx
~/Protected1.aspx
~/Protected2.aspx
~/Subfolder/
~/Subfolder/LogOn2.aspx
~/Subfolder/NotProtected.aspx
~/Subfolder/Protected3.aspx
그래서 내 Web.config의 모습 : 여기
는 예를 들어 레이아웃입니다 d는 ~/Subfolder/Protected3.aspx가 사용자가 익명 인 경우 ~/Subfolder/LogOn2.aspx로 리디렉션됩니다.내가 한 ~/하위 폴더 /의 Web.config에서의 Web.config의 버전을 박탈를 넣어보십시오
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Subfolder/LogOn.aspx" name="SiteAuth" protection="All" timeout="30" path="/" defaultUrl="~/Subfolder/default.aspx" requireSSL="true" cookieless="UseCookies" enableCrossAppRedirects="false" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
그러나 저를 얻는 모든이 오류입니다 : 내가 생각
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.
Subfolder 디렉토리를 응용 프로그램으로 만들면이 시점에서 더 많은 문제가 발생할 수 있지만 어쩌면 틀 렸습니다. 응용 프로그램 인 경우 ~/Subfolder의 모든 코드를 나머지 응용 프로그램과 분리하지 않습니까?
동적으로 말하면 하위 폴더의 일부 페이지 만 특정 시간에 loginurl로 리디렉션 하시겠습니까? 또는 하위 폴더의 모든 페이지가 항상 loginurl로 리디렉션되도록 하시겠습니까? – rahkim
익명 액세스를 허용하는 일부 페이지가 하위 폴더에 있으므로 리디렉션 할 필요가 없습니다. 그러나 deny = "?"인 하위 폴더의 페이지는 ~/하위 폴더/LogOn.aspx로 리다이렉트하고 싶습니다. 나머지 사이트의 보호 된 페이지는 ~/LogOn.aspx로 리다이렉트됩니다. – slolife
링크가 도움이 되었습니까? – rahkim