但是,我遇到了與先前解決的問題相同的問題,但此解決方案無法幫助我。表單身份驗證適用於dev服務器,但不適用於生產服務器(相同的SQL db)
我已經發布了以前的答問如下:
Forms Authentication works on dev server but not production server (same SQL db)
問:
我從來沒有過這個問題, 我在全盤損失。
我有一個SQL Server 2008數據庫與 ASP.NET窗體身份驗證,配置文件 和角色創建和功能 開發工作站。我可以用 登錄使用創建的用戶而不用 的問題。
我在 開發計算機上備份數據庫,並在生產服務器上將其恢復到 。我將 DLL和ASP.NET文件拷貝到服務器。 我在 web.config中進行必要的更改,將連接字符串更改爲指向 生產服務器數據庫並將其上傳 它。
我已經確保生成一臺機器 密鑰,並且它在 開發web.config和 生產web.config中都是相同的。
然而,當我嘗試登錄該 生產服務器上,這 我能夠在同一個用戶成功地與 開發計算機,失敗 生產服務器上登錄。
數據庫中還有其他內容,由 FluentNHibernate生成。在 開發和生產服務器上,此內容能夠成功查詢 。
這是令人震驚的,我相信我已經 驗證一切,但顯然 仍然沒有工作,我必須 錯過了一些東西。請有任何想法?
答案:
我由忘記設置在web.config的> applicationName屬性的成員資格提供元件下跑進有類似症狀的問題在一個點。
用戶被關聯到一個特定的應用程序。由於我沒有設置applicationName,所以默認爲應用程序路徑(類似「/ MyApplication」)。當它被移動到生產環境時,路徑將發生變化(例如,「/ WebSiteFolder/SomeSubFolder /MyApplication」),因此應用程序名稱默認爲新的生產路徑,並且不能對原始用戶帳戶進行關聯成立於>發展。
您的問題可能與我的相同嗎?
我已經在我的web.config中,但仍然有問題。有任何想法嗎?
<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="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/"/>
</providers>
</membership>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>
<roleManager enabled="false">
<providers>
<clear/>
<add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
任何幫助大大appriciated。
比較遺憾的是隻是一個維基格式錯誤的拼寫錯誤。 :(我已經讚揚它 – Desmond 2010-06-03 07:52:05
有沒有人有任何其他的想法? – Desmond 2010-06-03 10:02:01
如果你可以查詢數據庫罰款從應用程序,但無法登錄,然後嘗試抓住並找出什麼樣的sqlexception是在你被提出時嘗試登錄,應該澄清問題可能是什麼,否則從你嘗試登錄的地方通過調用堆棧,你應該知道什麼可能會導致它,我自己使用自定義formsauthentication,因爲我通常不需要大部分表格 這適用於winforms和mvc http://stackoverflow.com/questions/2771094/asp-net-mvc2-custom-membership/2925372#2925372 – Joakim 2010-06-03 10:56:01