Auf den MSDN page für die Membership.ApplicationName
Eigenschaft (die zu einem asp.net Mitgliedschaftsanbieter gilt), warnt sie, dass, obwohl eine Membership.ApplicationName
in Code ändern, ‚Die Applicationname-Eigenschaft nicht sicher ist, fädelt Bei mehreren Schreibvorgängen kann das Ändern des ApplicationName-Eigenschaftswerts zu einem unerwarteten Verhalten mehrerer Benutzer einer Anwendung führen. Sie empfehlen daher, die Verwendung für eine "Web-Anwendung" zu vermeiden.Ändern Membership.ApplicationName in Code - Thread-Sicherheit
Dies liegt daran, dass der Standardwert SqlMembershipProvider
als Singleton geschrieben wird. Aber hier ist meine Frage: Ist es OK, wenn alle Threads in meinem Anwendungsprozess Membership.ApplicationName
auf das gleiche setzen?
Ich denke über mehrere Anwendungen auf meiner IIS-Box, jeder mit ihren eigenen separaten Anwendungspool. Ich möchte sie auf den gleichen Ort verweisen, aber basierend auf dem Hostnamen, legen Sie den Anwendungsanbieter auf verschiedene Dinge. Wäre das nicht in Ordnung? Es ist möglicherweise keine Thread-sichere Operation, aber hat nicht jeder Anwendungspool seinen eigenen Prozess und daher seine eigene Instanz SqlMembershipProvider
? Jeder Thread, der versucht hat, Membership.ApplicationName
für eine gegebene SqlMembershipProvider
Instanz zu setzen, würde versuchen, es auf dasselbe zu setzen (der Provider, der für diesen Hostnamen geeignet ist). Oder fehlt mir etwas?
Ich denke, die wichtigste Frage ist, haben alle asp.net-Anwendungen eine SqlMembershipProvider
teilen, oder ist eine separate für jeden Anwendungspool-Prozess erstellt?
Danke, Kev ... Ich wollte wirklich diese Antwort. :-) Ich versuche nicht, Ihr Fachwissen in Frage zu stellen, aber könnten Sie mich auf irgendwelche Webseiten hinweisen (vorzugsweise von MS geschrieben), die diesen Punkt klar angeben? Es wäre schön, es von einer wirklich maßgeblichen Quelle zu haben. Ich habe angenommen, dass dies der Fall ist, aber wie ich bereits erwähnt habe, denke ich nicht an die MSDN-Seite zu 'Mitgliedschaft.ApplicationName' beschreibt die Situation sehr deutlich. – Jez
@jezz - Ich habe meine Antwort aktualisiert. – Kev
Kev: Welche Art von Frage wirft die Frage auf, warum die große unheimliche 'Vorsicht' auf der Membership.ApplicationName MSDN Seite? Es sollte zumindest erwähnen, dass Sie diese Instanzen von SqlMembershipProvider ziemlich einfach trennen können. – Jez