在特定頁面上調用Membership.GetUser()時(該網站這樣做的第一個頁面,因爲我們實施適當的安全控制)成員資格提供產生意外SQL錯誤
System.Data我收到以下錯誤。 SqlClient.SqlException(0x80131904):用戶'IIS APPPOOL \ UAT SITE'登錄失敗。在 .... 在System.Web.Security.SqlMembershipProvider.GetUser(字符串的用戶名,布爾userIsOnline)在System.Web.Security.Membership.GetUser(字符串的用戶名,布爾userIsOnline)
該網站運行良好在IIS Express,但UAT是IIS 7.5下的2008R2
的Web.Config
<authentication mode="Windows" />
<identity impersonate="True" />
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="DatabaseGTN" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="GTN" />
</providers>
</membership>
<roleManager enabled="true">
<providers>
<clear />
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="DatabaseGTN" applicationName="GTN" />
</providers>
</roleManager>
在該網站的 「身份驗證」 節點,ONLY ASP.NET模擬和Windows身份驗證啓用 Web服務器Windows身份驗證功能已安裝根據服務器經理。
使用相同的連接字符串引用,網站上的所有其他頁面都可以非常愉快地運行,並且審計日誌記錄表明在MS SQL中由SYSTEM_USER返回正確的用戶名COMPANY \ MyName,因此它看起來像其他所有SQL請求正如預期的那樣冒充。
對於我可能忽略的配置選項的任何建議將不勝感激。
我應該說得更清楚。 而不是添加額外的數據庫用戶或角色,我想讓模擬正常工作。 或者我想告訴我的老闆爲什麼不能這樣做。
謝謝。但這正是我想要允許的。只有屬於特定用戶組的用戶才允許訪問數據庫。而且它對於成千上萬的其他數據庫調用來說非常令人滿意,只是不適合會員提供商正在執行的調用。 – 2012-08-14 02:52:06