2011-03-20 26 views
5

Kimlik doğrulama yönteminin tamamen yapılandırılabildiği bir web uygulaması yapmak istiyorum (bu açık olabilir, windows kimlik doğrulaması olabilir, başka bir şey olabilir).ASP.NET MVC'de soyut kimlik doğrulaması için bir çerçeve var mı?

Farklı bir auth çözümü elde etmek için web.config dosyasındaki tek bir ayarı değiştirmeyi tercih ederim. Uygulamanın bir kullanıcı adıyla bir Principal/Identity'a ihtiyacı vardır (bazı kullanıcı detayları iyi olabilir, ancak bu noktada gerekli değildir).

Bana yardımcı olabilecek ya da kendim inşa etmem gereken iyi bir çerçeve var mı?

cevap

3

ASP.NET Membership özellikli yerleşik hakkında bilgi sahibi misiniz? ASP.NET MVC veya WebForms ile kullanılabilir. Diğer sağlayıcıları gerektiği gibi bağlayabilirsiniz. Kullanmamış olmama rağmen CodePlex'da bulunan bir OpenID sağlayıcısı var.

+0

Evet, bunu biliyorum, ancak sadece en basit parça - modelleri sunarken, tam bir çözümle ilgileniyorum. Ayrıca en son kullandığım zaman, API sorunlarına çarptığımı hatırlıyorum. Ama bir kez daha bakacağım, teşekkürler. –

+0

Evet, bence bu en iyi yaklaşım. Bu şekilde OpenID uygulamıştım - DotNetOpenAuth'u ASP.NET ile birleştirmek Üyelik çok basit ve anlaşılır. –

0

Ryan'ın yanıtını genişletmek için: System.Web.Security.MembershipProvider'dan (MVC3'te System.Web.ApplicationServices kitaplığında bulunan) bir sınıf oluşturabilirsiniz. Eğer gibi Web.config, girdileri sağlamak için gereken kullanılacak sağlayıcı yapılandırmak için aşağıdakileri yapın:

<!-- In configuration -> system.web --> 
<membership defaultProvider="ServicesMembershipProvider"> 
    <providers> 
    <clear/> 
    <add name="ServicesMembershipProvider" 
     type="APISite.Infrastructure.Web.Membership.ServicesMembershipProvider" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="false" 
     requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="false" 
     maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" 
     applicationName="/"/> 
    </providers> 
</membership> 

yapabilirsiniz bu bölümde tanımlanan birden fazla sağlayıcı var ve zamanda kullanmak istediğiniz birine defaultprovider set .

İlgili konular