FormsAuthentication: wie verschiedenen Cookie-Namen für bestimmte Unterverzeichnisse / MVC-Controller angeben?

StackOverflow https://stackoverflow.com/questions/3712798

Frage

Ich verwende FormsAuthentication (mit Cookies) für die Benutzer-Authentifizierung, mit dem Standard-Cookie-Namen ( ".ASPXAUTH").

Was brauche I ist ein anderes Login-System für das „/ Admin /“ virtuelle Verzeichnis (unterstützt von einem ASP.NET MVC-Controller „Admincontroller“) ... als ob das „/ Admin /“ Verzeichnis einer andere Web-Anwendung war , aber ohne eine andere Web-Projekt in meiner Lösung.

Wie kann ich anpassen, zur Laufzeit, der Cookie-Name von FormsAuthentication verwendet? Die FormsAuthentication.FormsCookieName ist nur lesbar (und statisch ...) und kann in der web.config ...

nur einmal angepasst werden

Sollte ich eine benutzerdefinierte FormsAuthenticationModule?

Ein Controller-Filter, wie die folgenden, könnte groß sein:

[CustomFormsAuthenticationCookie("NewCookieName")]
public class AdminController : Controller
{
War es hilfreich?

Lösung

Trick ist das zugrunde liegende Authentifizierungs-Framework wirklich kann damit nicht umgehen - Sie können nicht mehrere Formularauthentifizierung Bits ausgeführt wird. Einfachste Lösung wäre es, das Admin-Bits zu brechen in eine separate Webseite ab, die leben würden am Ende an anderer Stelle und nicht bekommt in der öffentlichen Website-Authentifizierung gefangen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top