2014-06-30 4 views
2

J'ai décidé d'utiliser la confirmation de compte et la récupération de mot de passe avec l'identité ASP.NET. J'utilise Identity 2.1.0. J'ai installé l'exemple d'application MVC de NuGet dans un projet vide afin que je puisse voir comment il est configuré.IOwinContext ne contient pas de définition pour GetUserManager()

Après avoir intégré les changements dans mon projet, il y a une erreur que je ne comprends pas comment résoudre:

« Microsoft.Owin.IOwinContext » ne contient pas de définition pour « GetUserManager » et pas d'extension La méthode 'GetUserManager' acceptant un premier argument de type 'Microsoft.Owin.IOwinContext' peut être trouvée (manque-t-il une directive using ou une référence d'assembly ?) C: \ Users \ xxxxx \ Source \ Repos \ xxxxxx \ xxxxxx \ xxxxxx \ Controllers \ AccountController.cs 48 69 xxx xxx xxx

L'erreur est jeté dans mes AccountController.cs:

public ApplicationUserManager UserManager 
{ 
    get 
    { 
     return _userManager ?? 
      HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
    } 
    private set 
    { 
     _userManager = value; 
    } 
} 

Dans l'exemple d'application et dans mon projet je vois sous Propriétés que les deux projets ont Microsoft.AspNet.Identity.Owin version 2.0.0.0 installé .

Quand je clique sur GetOwinContext droit() dans mon projet et Goto Définition, il montre que les métadonnées sont de Assembly Microsoft.Owin.Host.SystemWeb.dll, v2.1.0.0, mais quand je clique sur Microsoft.Owin.Host.SystemWeb sous Références Je vois dans les propriétés qu'il est seule version 2.0.0.0 - Non seulement cela semble étrange, mais il diffère également de l'exemple d'application qui montre 2.1.0.0. - C'est la seule différence que je peux trouver.

Je ne trouve aucune différence autre que ce qui est dans le paragraphe en gras ci-dessus. Cela semble faux, mais je ne suis pas sûr et je ne sais pas comment le réparer si c'est faux.

Répondre

7

clic droit sur GetUserManager n'a pas afficher l'élément de menu Resolve habituelle, ne Refactor donc la question n'a pas été évident pour moi quand même ... j'ai pu résoudre ce problème en incluant une déclaration using:

en utilisant Microsoft.AspNet.Identity.Owin;

: S

+0

Merci, c'est tout ce dont il avait besoin. –

1

J'ai rencontré des problèmes similaires avec la structure d'authentification la dernière fois que j'ai démarré un projet MVC. Ce qui a résolu pour moi, était de désinstaller le cadre d'authentification (via Nuget), et l'installer à nouveau. Ils ont récemment mis à jour le cadre d'authentification, mais je ne suis pas sûr que le projet MVC standard utilise celui qui vient d'être mis à jour. Laissez-moi savoir si cela fonctionne.

+0

Certains paquets ne changent-ils pas de code source? Je sais que les paquets peuvent apporter des modifications à la source, mais je crains que certaines de mes personnalisations seront écrasées. – rwkiii

+0

Quels types de modifications avez-vous apportées aux classes d'authentification? Donnez-moi 2 secondes, et je vais le tester pour vous. – MichaelCleverly

+0

Je ne pense pas avoir fait de changements liés à OWIN. N'est-ce pas surtout ce qui me préoccupe, c'est les paquets OWIN? Ou devrais-je également désinstaller et réinstaller les packages liés à Identity? – rwkiii

1

pour une raison quelconque après avoir fait ce qui est mentionné dans le plus voté question que je devais nettoyer et construire à nouveau le projet pour que cela fonctionne.

Questions connexes