2009-02-15 6 views
18

Ich schreibe eine Benutzerauthentifizierungsklasse. Während der Anfrage gibt es viele Referenzen auf den aktuellen Benutzer, daher möchte ich ihn im Speicher zwischenspeichern, anstatt die Datenbank ala singleton aufzurufen. Ich denke darüber nach, die Sitzung zu verwenden und sie am Ende jeder Anfrage zu löschen.asp.net mvc - müssen einige Daten für die aktuelle Anfrage speichern

wie:

public static User Current() { 
    if (Session["current-user"] == null) { 
      Session["current-user"] = GetUserFromDB(); // example function, not real 
    } 
    return (User)Session["current-user"]; 

dann in app_end Anfrage:

 Session.Clear(); 

Antwort

31
HttpContext.Items["user"] = user; 

Sie können die Kontextelemente während der gesamten Anforderung referenzieren und am Ende wird es bereinigt.

+0

In Sicht ist dies ViewContext.HttpContext.Items – Spikolynn

6

Verwenden Sie die HttpContext Klasse. Sie können entweder im Kontext eines Controllers von HttpContext.Current zu ihm gelangen.

Die HttpContext.Items Sammlung ist, was Sie verwenden möchten.

Verwandte Themen