10

Visual Studio 2013 RC'de çalışıyorum ve yeni Microsoft.AspNet.Identity.* paketlerini kullanarak Form Kimlik Doğrulaması'nı test ediyorum.Decoupling Microsoft.AspNet.Identity. *

Bu kavramları (Kullanıcıları, Rolleri, vb.) Bütünleştirebilirim ama farklı montajda olan kendi alan modellerini (POCO'lar) kullanmak istiyorum. Ayrıca Microsoft.AspNet.Identity.* dll'de bir bağımlılık yaratmak istemiyorum.

Bu mümkün mü? Olmadığını söyleyen this article'u buldum, ancak makale kimlik paketlerinin Önizleme değil RC sürümlerine dayalı olarak yazılmıştır.

cevap

1

Evet bu tam olarak desteklenen bir senaryodur; temel olarak, varsayılan EF uygulamasına sahip olan Microsoft.AspNet.Identity.EntityFramework dll'yi kullanarak hariç tutmayı kullanmak isteyebilirsiniz, ancak Yönetici sınıflarını yeniden kullanabilmeniz ve yalnızca uygulamanızı gerçekleştirebilmeniz gerekir. kendi özel Mağazalar, yöneticinin arayüz üzerinden kullanacağı kendi POCO'larınızı kullanarak. RTM için aerodinamik ve biraz daha basitleştirilmiş, ben RC sürümü henüz aerodinamik değil kadar inanıyorum. , Şimdi bir varlık çerçevesi modelini uygulayan Identity RC1 sample

: Burada bulabilirsiniz benim örnek proje güncelledik MyGet

+0

RTM için bunun (özel depolamayla) nasıl gerçekleştirileceğine dair bir örnek olacak mı? OWIN güvenliğini kullanabilmeyi ve sadece kendi alanımdaki POCO'ları kullanarak kullanıcıları, profilleri, rolleri, vb. Bulmak için "söyleyebilmeyi" çok isterim ... – zam6ak

+0

Evet, RTM ile birkaç örnek olacak. Bunu göstermek için, Azure Table Storage mağazaları, bir MySql mağazası, mevcut veritabanlarını kullanarak depolar (muhtemelen sizin senaryounuza en benzer olan) –

+0

Bu örnekleri dört gözle bekliyorum (özellikle mevcut db/model) ve umarım durumdan farklı olacaktır. @Olav Nybø 'da tarif edilen bir cevap ve yorumlar ... – zam6ak

4

:

Burada RTM bit erken erişim elde edebilirsiniz Güncelleme Microsoft.AspNet.Identity.EntityFramework için, tüm Mağaza sınıflarını yeniden kullanmak istemediğim için hala bir başvuru gerekir. Ancak örnek, model için kendi POCO sınıflarınızı nasıl kullanabileceğinizi göstermektedir.

  • IUserLoginStore
  • : Eğer tamamen modeli aksamından Microsoft.AspNet.Identity.EntityFramework bağımlılığını kaldırmak isterseniz

    aşağıdaki arayüz özellikleri vardır IIdentityStore arabirimini uygulayan bir sınıf uygulamak gerekir

  • IRoleStore
  • IUserSecretStore
  • ITokenStore
  • IUserClaimStore
  • IUserManagementStore
  • IUserStore

IIdentityStore sınıfı, örnek düzeneğine atıfta bulunarak, şimdi modeli tertibatının ayrı bir montaj olmalıdır. IIdentityStore derlemesi, ASP.Net Identity çekirdeğine bağımlı olacaktır.

IIdentityStore Sizin özel uygulama ve bu tür IUserSecret vb IUSER olarak ASP.Net Kimlik arayüzleri için POCO sınıflardan dönüştürmek mümkün somwhow gerekir

için çok çalışma olması Bana göre Zaten mağazalarınız için EF kullanıyorsanız, küçük bir kazanç.

AspNet.Identity.Core aksamına bağımlılık getirmek ve her biri küçük bir arabirimi uygulayan POCO sınıflarınızdan bazılarını almak benim için çok daha basit görünüyor.

+0

Hmm bunlar bile Microsoft.AspNet.Identity' çekirdek paketinin bir parçası - bunlar değil mi? – zam6ak

+0

Haklısınız, cevabımı güncelledim. Örnek projemdeki POCO'larım ayrıca Microsoft.AspNet.Identity.Core derlemesinde bulunan IUser, IUserSecret arabirimlerini de uygular. –

+1

Bu bağımlılığı üstlenmek (arayüzü uygulamak için) definatelly işleri basitleştirir, ancak bunun bizim için işe yaramayacağını düşünmüyorum. Modelleriniz olan etki alanı DLL'niz ve onu da kullanan bir konsol uygulaması varsa, ASP.NET bağımlılığını taşımak hiç mantıklı değildir. Ayrıca, o yoldan aşağı inmeye başladığınızda (çekirdek alan modelinde bağımlılıklar toplanıyor) ... birkaç yıl sonra, bir kabus ile sonuçlanırsınız :) – zam6ak

1

Sadece durumda. Belki birine yardım edebilirim. exorcising entity framework from asp.net.Identity

Ayrı bir proje (sınıf kütüphanesi) oluşturuldu etmişti, o zaman, asp.identity.core için ref eklemek orada sonra uygulanan vermişti benim UserStore sınıf ve Web projesinde bildiğim Kimlik yapılandırma beslenirler.

Karmaşık n katmanlı mimari ile projede iyi çalışır.

+0

Teşekkür ederiz! Bir başka yararlı makale ise [Kalıcılık-Caydırıcı ASP.NET Desenli Kimlik] (http://timschreiber.com/2015/01/14/persistence-ignorant-asp-net-identity-with-patterns-part-1/) – nrodic