Gibt es eine Möglichkeit, die LoginUrl von FormsAuthentication dynamisch zu ändern? Was ich habe, ist die ganze Site, die durch FormsAuth geschützt wird, aber für einige Seiten in einem Unterordner möchte ich den Benutzer zu einer anderen Anmeldeseite führen und FormsAuth den ReturnUrl-Kram behandeln lassen. Ist das möglich oder muss ich meinen eigenen Redirect-Code für die Untermappen-Fälle schreiben?So überschreiben/ändern Sie FormsAuthentication LoginUrl in bestimmten Fällen
Hier ist ein Beispiel-Layout:
~/LogOn1.aspx
~/Protected1.aspx
~/Protected2.aspx
~/Subfolder/
~/Subfolder/LogOn2.aspx
~/Subfolder/NotProtected.aspx
~/Subfolder/Protected3.aspx
Also meine web.config wie folgt aussieht:
<forms loginUrl="~/Splash.aspx" ... />
alle geschützten * ASPX-Seiten haben
<deny users="?">
Was ich d ist wie, obwohl ~/Unterordner/Protected3.aspx zu ~/Unterordner/LogOn2.aspx umgeleitet werden, wenn der Benutzer anonym ist.
Ich habe versucht, in ~/Subfolder/web.config eine abgespeckte Version von web.config setzen:
<?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>
Aber alles, was mir bekommt, ist dieser Fehler:
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.
Ich denke, Den Unterordner dir zu einer Anwendung zu machen würde an dieser Stelle noch mehr Probleme verursachen, aber vielleicht liege ich falsch. Wenn es eine Anwendung wäre, würde das nicht den gesamten Code in ~/Unterordner vom Rest der Eltern-App trennen?
Wenn Sie dynamisch sagen, wollen Sie nur einige Seiten im Unterordner zu bestimmten Zeiten auf die Login-URL umleiten? Oder möchten Sie, dass alle Seiten in einem Unterordner ständig auf eine Login-URL umgeleitet werden? – rahkim
Ich habe einige Seiten im Unterordner, die anonymen Zugriff erlauben, so dass diese nicht umgeleitet werden müssen. Aber Seiten im Unterordner, die deny = "?" Ich möchte nach ~/subfolder/LogOn.aspx weitergeleitet werden, wo der Rest der geschützten Seiten der Seite außerhalb des Unterordners zu ~/LogOn.aspx umgeleitet wird. – slolife
Hat der Link geholfen? – rahkim