2014-07-11 11 views
11

Aktualizuję więc dostawcę tożsamości asp.net Open Source dla MongoDB do pracy z Asp.Net Identity 3.0 (vel vnext). Do tej pory udało mi się zarejestrować dostawcę i tworzyć użytkowników, ale podczas korzystania z SignInManager jeśli poprawny login/pass jest zgłaszany błądW jaki sposób są identyfikowane nazwy uwierzytelniania w asp.net vnext

InvalidOperationException: Następujące typy uwierzytelniania nie były przyjętych: Microsoft.AspNet .Identity.Application

mam wytropił błąd tu https://github.com/aspnet/HttpAbstractions/blob/dev/src/Microsoft.AspNet.PipelineCore/DefaultHttpResponse.cs

ale nie może wydawać się, aby zobaczyć gdzie nazwa SignInContext.Accepted jest coraz dodany do SignInContext.

Używam alfa-2 wersje wszystkich bibliotek vnext, które są używane w VS14 CTP2

Poniżej jest moja Startup.cs

public void Configure(IBuilder app) 
    { 
     try { 
      // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 
      var configuration = new Configuration(); 
      configuration.AddJsonFile("config.json"); 
      configuration.AddEnvironmentVariables(); 

     // app.UseLogRequests("try"); 
      app.UseErrorPage(ErrorPageOptions.ShowAll); 
      app.UseServices(services => 
      { 

       services.AddIdentity<MyUser>() 
       .AddMongoDB<MyUser>(configuration.Get("Data:MongoIdentity:ConnectionString"), configuration.Get("Data:MongoIdentity:DBName")) 
       .AddHttpSignIn<MyUser>(); 


       // Add MVC services to the services container 
       services.AddMvc(); 
      }); 

      // Add static files to the request pipeline 
      app.UseStaticFiles(); 

      app.UseMvc(routes => 
      { 
       routes.MapRoute(
        name: "default", 
        template: "{controller}/{action}/{id?}", 
        defaults: new { controller = "Home", action = "Index" }); 

       routes.MapRoute(
        name: "api", 
        template: "api/{controller}/{action}", 
        defaults: new { action = "Index" }); 
      }); 

      // Add cookie-based authentication to the request pipeline 
      app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
       LoginPath = new PathString("/Account/Login"), 
      }); 
     } 
     catch (Exception ex) 
     { 
      Console.Write(ex.ToString()); 
      throw; 
     } 
    } 
+0

Byłbym naprawdę zainteresowany kodem/paczką, która umożliwia używanie MongoDB z Tożsamością pod vNext. Czy możesz to udostępnić? –

+0

Więc nadal jest dość surowy i nie implementuje wszystkich funkcji, ale jest użyteczny. Spróbuję rzucić to na Githuba, kiedy dostanę szansę w ciągu najbliższych kilku dni. –

+0

W międzyczasie wdrożyłem również moje rozwiązanie. –

Odpowiedz

8

Okazuje się, że miałem przed konfiguracji MVC CookieAuthentication, więc AuthenticationType nie został zarejestrowany w MVC, gdy próbował uwierzytelnić użytkownika. Ponieważ MVC zależy od uwierzytelnienia, musiałem go po prostu podważyć i zarejestrować przed MVC.

Powiązane problemy