Kann nicht UserManager von OwinContext in apicontroller

Bin ich nach einem Microsoft-Probe zu implementieren E-Mail-Bestätigung mit Identity 2.0.0

Ich bin stecken in diesem Teil

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

Diese Werke in einer controller aber HttpContext enthalten keine GetOwinContext - Methode in einer ApiController.

Also versuchte ich HttpContext.Current.GetOwinContext() aber die Methode GetUserManager existiert nicht.

Ich kann nicht herausfinden, ein Weg, um die UserManager ich Baue in Start.Auth.cs

//For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
{
    //Configure the db context, user manager and role manager to use a single instance per request
    app.CreatePerOwinContext(ApplicationDbContext.Create);
    app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create); 
    ...
}

diese Zeile

app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

ruft die folgende Funktion zum konfigurieren der UserManager

public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
     var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
     //Configure validation logic for usernames
     manager.UserValidator = new UserValidator<ApplicationUser>(manager)
     {
         AllowOnlyAlphanumericUserNames = false,
         RequireUniqueEmail = true
     };

     //Configure user lockout defaults
     manager.UserLockoutEnabledByDefault = true;
     manager.DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5);
     manager.MaxFailedAccessAttemptsBeforeLockout = 5;

     manager.EmailService = new EmailService();

     var dataProtectionProvider = options.DataProtectionProvider;
     if (dataProtectionProvider != null)
     {
         manager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity"));
     }
     return manager;
}

Wie kann ich Zugriff auf diese UserManager in einem ApiController?

InformationsquelleAutor der Frage Marc | 2014-06-02

Schreibe einen Kommentar