2010-06-03 57 views
1

但是,我遇到了與先前解決的問題相同的問題,但此解決方案無法幫助我。表單身份驗證適用於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。

回答

0

您的當前行是

<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="/"/> 

,但應該不會是

<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="/"/> 
+1

比較遺憾的是隻是一個維基格式錯誤的拼寫錯誤。 :(我已經讚揚它 – Desmond 2010-06-03 07:52:05

+0

有沒有人有任何其他的想法? – Desmond 2010-06-03 10:02:01

+0

如果你可以查詢數據庫罰款從應用程序,但無法登錄,然後嘗試抓住並找出什麼樣的sqlexception是在你被提出時嘗試登錄,應該澄清問題可能是什麼,否則從你嘗試登錄的地方通過調用堆棧,你應該知道什麼可能會導致它,我自己使用自定義formsauthentication,因爲我通常不需要大部分表格 這適用於winforms和mvc http://stackoverflow.com/questions/2771094/asp-net-mvc2-custom-membership/2925372#2925372 – Joakim 2010-06-03 10:56:01

1

1)嘗試添加defaultProvider設置:

<membership defaultProvider="AspNetSqlMembershipProvider"> 
     <providers> 

2)你有

applicationName="/"/ 

查看應用程序表,使用的名稱是什麼?

3)

<add name="AspNetSqlMembershipProvider"> 

不應該有密切的括號「AspNetSqlMembershipProvider」後

+0

/是在會員表中使用的名稱我添加了默認提供者,但它仍然沒有登錄。 – Desmond 2010-06-03 08:18:03

相關問題