Ist es ok .NET MembershipProvider haben mehrere virtuelle „Anwendungen“ auf einer Web-Anwendung zu verwenden?

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

Frage

Ich möchte portalartigen asp.net Web-Anwendung von Grund auf neu bauen und wurde bei asp.net MembershipProvider als Standardmethode der Suche nach Benutzer-Management. Ich habe mein Provider von SqlMembershipProvider erben und überschreiben ValidateUser Methode:

        public override bool ValidateUser(string username, string password)
        {
            string temp = ApplicationName;
            List<MtscApp> allApps = GetAllApplications();
            foreach (MtscApp app in allApps)
            {
                ApplicationName = app.Name;
                Roles.ApplicationName = app.Name;
                if (base.ValidateUser(username, password))
                {
                    return true;
                }
            }
            ApplicationName = temp;
            Roles.ApplicationName = temp;
            return false;
        }

Ich versuche eingegebenen Anmeldeinformationen gegen alle Anwendungen zu validieren, während GetAllApplicationsMethod (), um alle Anwendungen von aspnet_Applications Tabelle bekommt (ich habe auch einen Teil für Anwendungen in der gleichen Tabelle einfügen).

Wenn die Validierung erfolgreich dann wird Anwendungsname auf beide Mitgliedschaft und Rollen-Anbieter Endivie, sonst bleibt es auf dem Standard eines, das für anonyme Benutzer vordefinierte Anwendung ist.

War es hilfreich?

Lösung

Ja, ich habe mehrmals somethihng ähnlich gemacht. Der einzige Unterschied ist, dass ich den Namen der Anwendung in einer Datenbanktabelle nachschlagen basierend auf der URL in dem Benutzer kommt aus dem und nur für diese eine App validieren. Die Tabelle hat zwei Felder, URL und Application. Die Application ist das gleiche wie das Application aspnet_Applications.ApplicationName Feld.

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