2014-01-29 89 views
0

我們目前有一個已經生產了幾年的應用程序,它使用.Net 3.5構建,並使用aspnet成員資格提供程序來處理用戶身份驗證,創建和角色管理。最近我們收到了一些要求對應用程序進行一些升級的請求,在我們將其移至Visual Studio 2013,.Net 4.5的過程中。要求的升級之一是使用我們公司的LDAP進行身份驗證,這可能嗎?我們不想重建認證/授權/角色部分,我們是否可以離開角色部分並僅更改認證/授權部分?目前我們已經在我們的web.config以下現有aspnet角色提供程序的自定義成員資格?

<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> 
+2

當然,你應該可以寫一個自定義的會員供應商。這實質上是提供者背後的推理,作爲可以用不同實現來取代的抽象。 – David

回答

1

現有的Active Directory成員提供程序應該做的罰款

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

至於角色,據我知道AD角色提供者沒有內置,但有一個旨在創建它的項目:

http://adrp.codeplex.com

另一種方法是切換到聯​​合身份驗證。這仍然使得除了登錄部分外,您不需要對代碼進行任何更改,但好處是您擁有多個應用程序的單一登錄,其中一些甚至不必基於.net。這意味着用戶只能登錄一次,認證流程會將用戶信息(包括角色)傳遞給請求的應用程序。

如果您決定遵循這一點,請閱讀ADFS2.0和基於聲明的安全性。

相關問題