因此,我正在將應用程序從集成安全性轉換爲使用內置成員資格提供程序進行表單身份驗證,並具有最奇怪的行爲。最初,我使用默認的sqlexpress配置,在App_Data文件夾中創建一個aspnetdb.mdf文件。ASP.NET會員之謎
但是,我想將它移到我的SQL Server,並通過在SQL Server數據庫中創建過程和表來實現,並將提供者指向該數據庫。然而,當我運行網站管理工具時,它不會查看SQL Server。
它不斷創建一個aspnetdb.mdf文件並使用該文件,即使我的應用程序似乎正確地擊中了SQL數據庫。最後,我關閉了SQLEXPRESS服務,現在是真正奇怪的位發生的地方。
登錄工作正常 - Membership.Provider.ValidateUser(LoginUser.UserName, LoginUser.Password)
返回true。但是,如果調用IsInRole
,則超時將無法連接到數據庫。顯然,它試圖連接到SQLEXPRESS數據庫。我已重新啓動IIS,重新啓動數據庫服務無濟於事。
這是不是告訴會員服務,達到什麼樣的數據庫的正確的地方:
<connectionStrings>
<add name="MyConnection" connectionString="user id=myuser;password=mypassword;data source=SERVER\INSTANCE;initial catalog=mycatalog;"/>
</connectionStrings>
<system.web>
<authentication mode="Forms">
<forms name="formsauth" protection="None" path="/" loginUrl="~/Account/Login.aspx" cookieless="UseCookies"/>
</authentication>
<roleManager enabled="true" />
<membership>
<providers>
<remove name="AspNetSqlMembershipProvider"/>
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="MyConnection"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/MyApp"
requiresUniqueEmail="false"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
/>
</providers>
謝謝 - 我想我一直認爲的配置工具足夠聰明,可以獲取配置設置。傻我。無論如何,這是訣竅! – sydneyos