是否有一个框架来抽象ASP.NET MVC中的身份验证?

时间:2011-03-20 19:58:37

标签: asp.net-mvc authentication

我想创建一个Web应用程序,其中身份验证方法是完全可配置的(它可能是openid,可能是Windows身份验证,也可能是其他任何内容)。

我希望只更改web.config中的单个设置以获得不同的身份验证解决方案。该应用程序需要具有某种用户名的Principal / Identity(其他一些用户详细信息可能很好,但此时不需要)。

是否有任何好的框架可以帮助我或者我应该自己建立?

2 个答案:

答案 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设置为您当时要使用的提供商。

相关问题