Asp.net

將一個 Asp.net Membership 數據庫與多個應用程序一起使用

  • February 16, 2010

我在一台 IIS 伺服器上有兩個 asp.net 應用程序,我想使用相同的後端 asp_security 數據庫和成員資格提供程序。我已經讀過我所要做的就是在兩個 Web 配置中引用相同的應用程序名稱,就像我現在正在做的那樣,但我一定做錯了什麼

在每個應用程序 web.config 中我都有這個部分。

<membership>
 <providers>
   <clear/>
   <add name="AspNetSqlMembershipProvider"
             type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
             connectionStringName="membership"
             enablePasswordRetrieval="false"
             enablePasswordReset="true"
             requiresQuestionAndAnswer="false"
             applicationName="/"
             requiresUniqueEmail="false"
             minRequiredPasswordLength="5"
             minRequiredNonalphanumericCharacters="0"
             passwordFormat="Hashed"
             maxInvalidPasswordAttempts="5"
             passwordAttemptWindow="10"
             passwordStrengthRegularExpression=""
             />
 </providers>
</membership>

當我從應用程序 A 登錄並瀏覽到應用程序 B 時,應用程序 B 似乎對我或應用程序 A 的憑據一無所知。有人知道我做錯了什麼嗎?

只是為了結束,我將回答我是如何實現我最初的問題所要求的目標的。

我在一台 IIS 伺服器上有兩個 asp.net 應用程序。我的目標是當使用者登錄到 app1 時,他們的使用者憑據將在 app2 中可用。配置 asp.net 成員資格提供程序只是我正在尋找的一個步驟。即使兩個應用程序都使用相同的後端數據庫和提供程序,當我點擊 app2 時,我仍然無法通過身份驗證。我一直在尋找的是單點登錄解決方案。

一旦您將兩個應用程序都指向您的 asp_membership 數據庫,請將以下內容放在您的 web 配置的 system.web 部分

<authentication mode="Forms" />
<membership>
 <providers>
   <clear/>
   <add name="AspNetSqlMembershipProvider"
             type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
             connectionStringName="membership"
             applicationName="/"
             />
 </providers>
</membership>
<roleManager enabled="true" />

確保兩者都具有相同的 applicationname 屬性集。

我使用的是 IIS 6,因此我將其配置為為兩個應用程序自動生成機器密鑰。因為這兩個應用程序都存在於同一台機器上,所以密鑰是相同的,這是使 SSO 工作的關鍵部分。設置 IIS 後,將以下內容添加到我的 web.config

   <machineKey decryptionKey="AutoGenerate" validation="SHA1" validationKey="AutoGenerate" />

這就是它的全部。完成後,我可以登錄 app1,然後瀏覽到 app2 並保留我的安全憑證。

感謝您朝著正確的方向推動。

引用自:https://stackoverflow.com/questions/2274688