我想创建一个Web应用程序,其中身份验证方法是完全可配置的(它可能是openid,可能是Windows身份验证,也可能是其他任何内容)。
我希望只更改web.config中的单个设置以获得不同的身份验证解决方案。该应用程序需要具有某种用户名的Principal
/ Identity
(其他一些用户详细信息可能很好,但此时不需要)。
是否有任何好的框架可以帮助我或者我应该自己建立?
答案 0 :(得分:3)
您熟悉内置的ASP.NET Membership功能吗?它可以与ASP.NET MVC或WebForms一起使用。您可以根据需要插入其他提供程序。有一个OpenID提供程序可以在CodePlex上找到 - 虽然我还没有使用它。
答案 1 :(得分:0)
扩展Ryan的答案:您可以创建一个继承自System.Web.Security.MembershipProvider
的类(位于MVC3中的System.Web.ApplicationServices库中)。要配置要使用的提供程序,您需要在Web.config中提供如下所示的条目:
<!-- 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>
您可以在此部分中定义多个提供商,并将defaultprovider
设置为您当时要使用的提供商。