现有aspnet角色提供者的自定义成员资格?

时间:2014-01-29 15:39:33

标签: c# asp.net

我们目前有一个已经投入生产几年的应用程序,它是使用.Net 3.5构建的,并使用aspnet成员资格提供程序来处理用户身份验证,创建和角色管理。最近我们收到了对应用程序进行一些升级的请求,在此过程中我们将其移至Visual Studio 2013,.Net 4.5。要求升级之一是使用我们公司的LDAP进行身份验证,这可能吗?我们不想重建身份验证/授权/角色部分,我们是否可以保留角色部分并仅更改身份验证/授权部分?目前,我们在web.config中有以下内容

<roleManager enabled="true" />
<compilation debug="true" targetFramework="4.5">
  <assemblies>
    ...
  </assemblies>
</compilation>
<!--
        The <authentication> section enables configuration 
        of the security authentication mode used by 
        ASP.NET to identify an incoming user. 
    -->
<authentication mode="Forms">
  <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" protection="All" timeout="30" requireSSL="false" slidingExpiration="true" cookieless="UseCookies" enableCrossAppRedirects="false" defaultUrl="default.aspx" />
</authentication>
<authorization>
  <deny users="?" />
</authorization>
<membership defaultProvider="AspNetSqlMembershipProvider">
  <providers>
    <clear />
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
    <add name="PasswordResetMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
  </providers>
</membership>

1 个答案:

答案 0 :(得分:1)

现有的活动目录成员资格提供程序应该没问题

http://msdn.microsoft.com/pl-pl/library/system.web.security.activedirectorymembershipprovider(v=vs.110).aspx

至于角色,据我所知,没有内置的AD角色提供程序,但有一个项目旨在创建它:

http://adrp.codeplex.com

另一种方法是切换到联​​合身份验证。除了登录部分之外,这仍然使您不需要对代码进行任何更改,但是您可以获得多个应用程序的单点登录,其中一些甚至不必基于.net。这意味着用户只登录一次,并且身份验证流程将用户信息(包括角色)传递给请求的应用程序。

如果您决定这样做,请阅读ADFS2.0和基于声明的安全性。