2009-01-28 15 views
3

J'ai une application Web ASP.Net MVC en utilisant l'authentification par formulaires. J'utilise OpenID pour l'authentification.Enregistrer l'ID utilisateur dans Principal ou Identité? ASP.Net/OpenID

Au moment où je stocke l'URL openID dans le Name de la norme GenericIdentity. Je voudrais également avoir un accès facile à l'ID de la base de données pour l'utilisateur.

Je peux créer un fournisseur ou une identité personnalisée en remplaçant la fonction Application_AuthenticateRequest.

Ma question est de savoir si la base de données uid pour l'utilisateur va dans le principal ou l'identité?

La propriété Name de l'identité doit-elle être l'url openid (un utilisateur peut en avoir plusieurs mais je souhaite l'afficher sur chaque page) ou une base de données uid?

Répondre

3

Je pense maintenant que je devrais simplement stocker l'id de l'utilisateur dans l'identité et se raccrocher à l'url openid dans la session.

De cette façon, je n'aurai pas besoin d'une identité ou d'un mandant personnalisé.

+0

Cela fonctionne très bien. Je stocke aussi l'identifiant de l'utilisateur dans l'identité. Si vous n'avez pas le temps d'investir dans la création d'une identité personnalisée, ce n'est pas trop dur, vous trouverez éventuellement d'autres informations utiles à stocker dans votre identité, et cela empêchera votre session d'être remplie de telles choses. – DavGarcia

+0

Je suis également sur le point de créer une classe d'identité personnalisée pour mon application ASP.NET MVC. Je pense que l'identité devrait contenir des informations sur l'utilisateur qui s'est authentifié .. alors pourquoi ne pas l'étendre si vous voulez que des informations riches soient conservées sur le site? –

+2

Comment avez-vous géré la gestion des membres et des rôles? Avez-vous utilisé les fournisseurs par défaut? Si oui, comment l'avez-vous branché avec votre utilisateur uid (puisque les fournisseurs utilisent le nom d'utilisateur comme clé). –