ASP.Net MVC Magasin Entité Utilisateur Dans la Session

Je suis en train d'élaborer un ASP.Net MVC 3 application Web avec Entity Framework 4. Lorsqu'un utilisateur se connecte à ma demande, je voudrais stocker leurs entité utilisateur (prénom, nom, etc) dans une session qui peut alors accéder à l'ensemble de l'application.

Je comprends que cela peut ne pas être une bonne idée parce que quand ObjectContext ferme/dispose, puis l'Utilisateur de l'entité est détachée et les détails de l'utilisateur pourrait être perdu.

J'ai pensé à une autre méthode pourrait être, lorsque l'utilisateur se connecte, attribuer l'identifiant (Clé Primaire) à une variable de session, c'est à dire:

HttpContext.Current.Session["currentUserID"] = user.userID;

Ensuite créer une classe dans le UserService classe comme ceci:

public static User CurrentUser
    {

        get
        {
            return Data.DBEntities.Users.Where(u => u.userID == HttpContext.Current.Session["currentUserID"]).FirstOrDefault();
        }

    }

Qui doit retourner une Entité Utilisateur basée sur le currentUserID variable de session. Ce n'est pas de travail pour moi, cependant, je reçois un couple d'erreurs

Cannot convert lambda expression to type 'string' because it is not a delegate type
Delegate 'System.Func<Asset.Model.User,int,bool>' does not take 1 arguments

Est cette approche que je prends de la corriger, ou est-il un meilleur moyen?

Tous les commentaires seront très appréciés.

OriginalL'auteur tcode | 2011-02-14