FormsAuthentication: wie verschiedenen Cookie-Namen für bestimmte Unterverzeichnisse / MVC-Controller angeben?
-
02-10-2019 - |
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 werdenSollte ich eine benutzerdefinierte FormsAuthenticationModule?
Ein Controller-Filter, wie die folgenden, könnte groß sein:
[CustomFormsAuthenticationCookie("NewCookieName")]
public class AdminController : Controller
{
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.