Ich habe Formularauthentifizierung und ich brauche ein benutzerdefiniertes Objekt in HttpContext.Current.User und in Thread.CurrentPrincipal gespeichert werden.PostAuthenticateRequest wird mehrmals ausgelöst
Um dies zu erhalten, höre ich PostAuthenticateRequest Ereignis, dann lesen aus der DB, die alle Datennutzer Ich brauche in HttpContext.Current.User und in Thread.CurrentPrincipal gespeichert werden, dann instanziiert ich benutzerdefinierte IPrincipal und IIdentity Objekte und ordnen sie zu den oben genannten Standorten.
Das Problem ist, dass aus irgendeinem Grunde PostAuthenticateRequest mehrmals für eine einzige Anforderung ausgelöst .. Dies verursacht unnötige DB der wehe Leistung .. Rundreisen
Wie soll ich diese Adresse? (ASP.NET MVC 2)
Danke.
Oh, ja! Die Sache mit Ressourcen und etc ist mir entfallen !!! Danke für die Auffrischung! Ich habe bereits über Caching nachgedacht. Aber es geht auch mit Implikationen. Zum Beispiel lese ich aus der Datenbank und speichere die Berechtigungen des Hauptbenutzers. Sie im Cache zu haben, ist keine sehr gute Idee, falls der Admin entscheidet, die Berechtigung für einen Benutzer zu ändern - die Berechtigungen des zwischengespeicherten Benutzers werden nicht aktualisiert, bis sich der Benutzer abmeldet/anmeldet. Sie müssen Ihre Idee mit "kurz" Caching versuchen. Es sieht so aus, als sollte es die Rechnung passen .. Vielen Dank! – Ant
Sie können den Cache für den aktuellen Benutzer auf Page_Init aktualisieren. Dann würde es nur einmal pro Seitenanforderung von der DB neu geladen werden. Dies tritt immer auf, bevor eine der anderen Resorcen angefordert wird, da die Seite noch nicht gerendert wurde. –