SORU
3 EKİM 2013, PERŞEMBE


ASP.NET MVC Algılayıcıya, SimpleMembershipProvider 5 ile uyumlu değil mi?

4 & Web API ASP.NET MVC üzerine inşa mevcut bir uygulama var. Sitenin admin parçaları Basit Üyelik kullanın. Eklenen bazı yeni özellikler yararlanmak için 2, Web API 5 / MVC uygulama yükseltme ilgileniyorum. Ama uyumlu olabilir gibi görünüyor.

Özellikle, sonra yükleme RC paketleri NuGet içine bir proje benim çözüm, ve updating the web.config information uygulama başlar ölmeye sırasında başlangıç çizgisine çağıran WebSecurity.InitializeDatabaseConnection(), Bu özel durum:

[MethodAccessException: Attempt by security transparent method 'WebMatrix.WebData.PreApplicationStartCode.OnConnectionOpened(System.Object, WebMatrix.Data.ConnectionEventArgs)' to access security critical method 'System.Web.WebPages.HttpContextExtensions.RegisterForDispose(System.Web.HttpContextBase, System.IDisposable)' failed.]
   WebMatrix.WebData.PreApplicationStartCode.OnConnectionOpened(Object sender, ConnectionEventArgs e)  70
   WebMatrix.Data.Database.OnConnectionOpened()  70
   WebMatrix.Data.Database.EnsureConnectionOpen()  51
   WebMatrix.Data.Database.QueryValue(String commandText, Object[] args)  63
   WebMatrix.WebData.DatabaseWrapper.QueryValue(String commandText, Object[] parameters)  13
   WebMatrix.WebData.SimpleMembershipProvider.GetUserId(IDatabase db, String userTableName, String userNameColumn, String userIdColumn, String userName)  206
   WebMatrix.WebData.SimpleMembershipProvider.ValidateUserTable()  87

Aynı çözüm var Basit bir Üyelik kullanarak diğer projelerdeğilyükseltilmiş sadece iyi çalışmaya devam.

Daha fazla bilgi için Googling tabii ki bu durum için sonuç çok çıkıyor, ama hiçbir şey belli Algılayıcıya için.

FWIW: bildiğim Microsoft tanıttı (yet another) membership and identity solution, ama sürece bir şekilde kullanan ile mevcut Basit Üyelik tablolar, ya da sorunsuz bir geçiş yolu üzerinde mevcut kullanıcı verileri, bu gerçekten bir seçenek bizim için.

GÜNCELLEME (11 Ekim)

Ben sadece bu yine bizim app mevcut gövde taze bir ödeme ile çalıştı. Visual Studio 2012, ama aksi takdirde, varolan bir projeye yükseltmek için MS talimatları takip kullanıyorum. 5 / 2 / Web API EF uygulaması başladı 6, MVC güncellemeden sonra gayet iyi koştu.

web.config açık güven gereksinimleri kaldırmak için vardı. Global.asax.cs this question kod ekledim ve uygulamayı tam güven (TV IIS Express, F5-ed) ile çalışmakta olduğunu bildirir.

Yeniden ekleme aynı durum ile ölmeye başlar InitializeDatabaseConnection(), aynı arayın.

ÇÖZÜM (28 Ekim)

Cuma @Kevin güncelleme çözüm çalışıyor, çalıştığını buldum. Görünüşte olmayan bu paketi ekleyerek bu güvenlik sorunları çözecek, hatta benim için çok gariptidaha fazlabenim çözüm, paketi çıkardım sonra garipmuhafaza çalışma.

Alma bir daha yakından bak. dalga mı geçiyorsun, anladım ki nedeni neden bu düzeltmeleri davranışı oldukça basit: Microsoft.AspNet.WebHelpers paket iki bağımlılıkları vardı ekleniyor benim çözüm: Microsoft.AspNet.WebPages.Data Microsoft.AspNet.WebPages.WebData.Microsoft yeni paketler içine Algılayıcıya sınıfları taşındı.

Yani çokta paketi sabit eklendi sorun, ne oldu bir şey çünkü, ama çünkü değilkırık derlemeler güncellemeleri eklenecek neden oldubenim çözüm için. İlk uyuşmazlık çözümü, daha sonra NuGet gelen her şeyi güncellerken bu yeni paket yüklemek için:

Install-Package Microsoft.AspNet.WebPages.WebData

GÜNCELLEME (13 Mayıs 2015)

El ile de ikinci yeni paketi yüklemeniz gerekebilir suggested to me olmuştur:

Install-Package Microsoft.AspNet.WebPages.Data

Buolmamalıdırbu paket ilk an explicit dependency çünkü gerekli, ve NuGet hem de yüklemek için yeterince akıllı olmalıdır. Ama an error when building, olsun ya da NuGet bağımlılık ekleyin görmüyorsanız, bu size yardımcı olabilir.

CEVAP
9 EKİM 2013, ÇARŞAMBA


Algılayıcıya MVC 5 ile uyumludur.

Ne yaptıysam boş MVC 5 projesi alıp Algılayıcıya SimpleMembershipProvider SimpleSecurity, 20 ** açık kaynak kodlu bir proje kullanarak dahil oldu. Şu ana kadar veritabanı, tohum oluşturmak mümkün duyuyorum, ve çıkış. Bu referans uygulama, onay e-postası ve çeşitli testler gibi başka özellikler eklemeyi planlıyorum. İşim bittiğinde kaynağı SimpleSecurity Project kod yayınlayacağız

Eğer tahmin etmem gerekirse, senin sorunun yükseltme işlemi ile olabilir. Ne süreci MVC 5 için MVC 4 proje yükseltme için mi aldın? 22**? Ne sürüm Algılayıcıya derlemeler kullanıyorsunuz? Ne sürüm Visual Studio kullanıyorsunuz? Algılayıcıya ve Visual Studio 2013 sürüm 2.0.0.0 RC kullanıyorum.


Güncelleme (10/25/2013)

Bir yerde kırıldı hat boyunca MVC 5 projesi için SimpleMembership ekleme ve deney devam ettim ve Otto Sixten @aynı sonuçları aldım. Şeyler ekledim kademeli olarak test etmedim ama Web API derlemeler taktığımda olmuş olabilir şüphelenmeye başladım. Yeni MVC 5 projesi oluştururken varsayılan olarak yüklü değildir.

Hata hakkında biraz daha araştırma yaptım ve bu QA başlıklı rastladım "Attempt by security transparent method 'WebMatrix.WebData.PreApplicationStartCode.Start()'". Bu eski bir QA ve aslında birisi MVC 4 MVC 3 uygulama yükseltirken aynı hatayı alıyorum. Ama son zamanlarda insanlar MVC 5'e yükseltme konusunda cevaplar ve bu cevaplar benim için çalıştı bir ekleme olmuş.Benim için çözüm NuGet paketini yükleyinMicrosoft.AspNet.WebHelpers.Bu paketi kurduktan sonra her şey iyi çalıştı.

Yeni ASP.NET Kimlik göç araştırmam hakkında bir not bir veritabanı ASP.NET Kimlik tarafından kullanılan eski üyeleri hareketli önleyen aynı şifre karma, kullanmazlar. ASP.NET Kimlik belki bunun için bir çözüm ile gelip böylece gerçek akı şu anda görünüyor.


Güncelleme (2/16/14)

Ben yanlışlıkla şifreleri için karma algoritma SimpleMembership ve ASP.NET Kimlik farklı olduğunu bildirdi. Karma parolaları bir görsel denetim göre bu, sadece bu alanda olduğunu karma şifre olduğunu varsayarsak düşündüm. Daha fazla araştırma sonra SimpleMembership Sistemini kullanan buldum.Web.Yardımcıları.Parola karma ve parola alanına depolanan ne olduğunu aslında 256 bit anahtarı ve tuz için kripto sınıf. Bu bilgi ile ASP.NET Kimlik SimpleMembership tarafından oluşturulan şifreleri doğrulamak doğrulamak için bazı testler yaptım ve geçti. ASP.NET Kimlik kullanılan algoritma SimpleMembership bana bir SimpleMembership bir webiste gelen veri taşımak için izin verecek ASP.NET Kimlik şifre elinde olursa tak diye kullanılan karma ne olduğunu bulmaya çalışıyordum. Meğer gerekli değildir. I talk about the password hash and how to migrate the data from SimpleMembership to ASP.NET Identity in more detail in this article.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Apple&Tech Reviews & Giveaways

    Apple&Tech R

    12 Temmuz 2008
  • Kupa World

    Kupa World

    1 EYLÜL 2011
  • WK

    WK

    9 Ocak 2006