2016-04-22 18 views
18

SignInManager üzerinden ancak EntityFramework olmadan ASP.net kimlik doğrulaması uygulamak arıyorum. Kendi veritabanı katmanımı SQLClient kullanarak oluşturdum ve sadece ASP.net kimlik doğrulama çalışması yapmak için gereken her türlü çağrıyı oluşturmak istiyorum.EntityFramework olmadan ASP.net Core 1 "SignInManager" nasıl kullanılır

(Startup.cs yürütülen) şöyle Ben kodu:

// Add EF services to the services container. 
services.AddEntityFramework() 
    .AddSqlServer() 
    .AddDbContext<OAuthAppDbContext>(opt => opt.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"])); 

// Add Identity services to the services container. 
services.AddIdentity<ApplicationUser, ApplicationRole>(options => 
{ 
    options.Cookies.ApplicationCookieAuthenticationScheme = "ApplicationCookie"; 
    options.Cookies.ApplicationCookie.AuthenticationScheme = "ApplicationCookie"; 
    options.Cookies.ApplicationCookie.CookieName = "oAuthInterop"; 
    options.Cookies.ApplicationCookie.AutomaticChallenge = true; 
    options.Cookies.ApplicationCookie.AutomaticAuthenticate = true; 
    options.Cookies.ApplicationCookie.DataProtectionProvider = new DataProtectionProvider(new DirectoryInfo("d:\\development\\artefacts"), 
     configure => 
     { 
      configure.SetApplicationName("TestAuthApp"); 
      //configure.ProtectKeysWithCertificate("thumbprint"); 
     }); 
}) 
    .AddEntityFrameworkStores<OAuthAppDbContext, int>() 
    .AddDefaultTokenProviders(); 

ve ben varlık Framework bağımlılığını kaldırmak (ve kullanıcı bilgilerini toplamak için kendi db yöntemleri çağırmak) gerekmektedir. ASP.net çekirdeğinde benzer bir şey yaptı mı?

Herhangi bir işaretçi için şimdiden teşekkür ederiz! :-)

+0

Sadece merak ettiniz, ef olarak uyguladınız mı? Eğer herhangi bir örnek varsa, lütfen onu gönderebilirsiniz. Teşekkürler – Swamy

cevap

37

En azından, uygun gördüğünüz şekilde IUserStore<ApplicationUser>, IUserPasswordStore<ApplicationUser> ve IRoleStore<ApplicationUser>'yi uygulamak ve bunları IServiceCollection ile kaydetmek isteyeceksiniz. Tam kimlik işlevselliğini (IUserClaimsStore, IUserPhoneNumberStore, IUserLockoutStore, vb. - you can find the whole list on GitHub) almak için uygulamak isteyebileceğiniz birkaç diğer arabirim vardır.

Son olarak, EF servis kayıtlarınızı kaldırmayı unutmayın!

Gerçekten temel bir bellek içi örnek here araya koydum. Gerçekten hızlı ve kirli, bu yüzden ondan çok fazla ilham almaya çalışmanızı tavsiye etmem. Doğru bir uygulamayı gerçekten görmek istiyorsanız, here is how the actual EF version is implemented!

+0

@MatthewKing'i geri aldığınız için teşekkür ederiz. Bir örnek olmadan uygulamak için uğraşıyorum. EF olmadan Core 1'i kullanarak çevrimiçi olarak herhangi bir örnek biliyor musunuz? Teşekkürler –

+1

Mevcut herhangi bir örnek bilmiyorum @RobMcCabe, ama bir gün sonra hızlı bir örneği bir araya getirmeyi deneyeceğim. – MatthewKing

+3

@RobMcCabe Başlamanızı başlatabilmeniz için GERÇEKTEN temel bir örnek eklemek üzere cevabımı düzenledim. Veri deposu olarak bir bellek içi liste kullanarak genel fikri ortaya koymaktadır, ancak kendi veritabanınızı oradan nasıl taktığınızı görebilmeniz gerekir! Umarım bu yardımcı olur. – MatthewKing

İlgili konular