411 votes

L’identité ASP.Net - HttpContext n’a aucune méthode d’extension pour GetOwinContext

Je l'ai téléchargé, et a rencontré le succès avec la ASP.Net l'Identité de l'échantillon à partir d'ici: https://github.com/rustd/AspnetIdentitySample

Je suis maintenant dans le milieu de la mise en œuvre de la ASP.Net l'Identité dans le cadre de mon projet et d'avoir couru dans un problème, qui a fait de moi un fou jour... GetOwinContext() n'existe pas comme une méthode d'extension sur mon HttpContext

Je suis la mise en œuvre de l'identité dans le cadre de la bibliothèque de classe. J'ai installé toutes les dernières (version préliminaire) de l'Identité de cadre et de tout - delà de cet aspect, fonctionne bien.

J'ai essayé de mettre en œuvre le même code que le même directement dans mon contrôleur, et de trouver le même problème.

Je suis clairement en manque une référence quelque part, mais je n'ai aucune idée de ce que..!..

Le code-block qui me tue est:

 private IAuthenticationManager AuthenticationManager
        {
            get
            {
                return HttpContext.GetOwinContext().Authentication;
            }
        }

J'ai ajouté des références à la suite essayé ces deux dans ma bibliothèque de classe et aussi directement sur le contrôleur, tous ne fonctionnent pas pour moi...

using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin.Security;
using Microsoft.Owin;
using System.Web;

... c'est de me conduire dans le mur....une idée?

Mise à JOUR

J'ai vérifié les versions de l'Identité et OWIN dans l'échantillon, et ont fait en sorte que j'ai les mêmes versions dans ma solution.

Plus encore, si je recherche le navigateur d'objet sur l'échantillon en GetOwinContext je peux trouver de la méthode, cependant lorsque je recherche dans ma solution, il est nulle part pour être trouvée... je dois avoir une bibliothèque de date, mais ne peux pas le trouver!

750voto

Darren Points 7156

ARGH !

Je l’ai trouvé... Je n’avais pas un paquet supplémentaire, appelé``

Une fois que j’ai cherché et installé ceci, cela a fonctionné.

Maintenant - je ne sais pas si j’ai raté de justesse tout ce que, bien que ne trouvé aucune référence à une bibliothèque ou un paquet lorsque vous parcourez les différents tutoriels. Il n’a pas également s’installer quand j’ai installé tout ce cadre d’identité... Vous ne savez pas si c’était juste moi...

181voto

Tommy Points 17332

Je crois que vous avez besoin de faire référence à l'actuel HttpContext si vous êtes en dehors du contrôleur. Les contrôleurs MVC avoir une base de référence dans le contexte actuel. Cependant, en dehors de cela, vous devez déclarer explicitement que vous voulez l'actuel HttpContext

return HttpContext.Current.GetOwinContext().Authentication;

Quant à elle ne s'affiche pas, une nouvelle MVC 5 projet de modèle à l'aide du code de vous montrer ci-dessus (l' IAuthenticationManager) a la suite à l'aide des déclarations au sommet du compte de contrôleur:

using System.Threading.Tasks;
using System.Web;
using System.Web.Mvc;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin.Security;
using WebApplication2.Models;

En commentant chacun, il semble que l' GetOwinContext() est en fait une partie du Système.Web.Mvc assemblée.

17voto

CodeNotFound Points 595

Assurez-vous que vous avez installé le package nuget Microsoft.AspNet.Identity.Owin. Ajoutez ensuite l’espace de noms System.Net.Http .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X