以前に解決した質問と同じ問題がありますが、この解決策は役に立ちませんでした。
以前の質問と回答を以下に投稿しました。
フォーム認証は開発サーバーでは機能しますが、運用サーバーでは機能しません (同じ SQL データベース)
質問:
私はこれまでこの問題を経験したことがなく、完全に途方に暮れています。
ASP.NET フォーム認証、プロファイル、およびロールが作成された SQL Server 2008 データベースがあり、開発ワークステーションで機能しています。作成したユーザーで問題なくログインできます。
開発用コンピューターでデータベースをバックアップし、運用サーバーで復元します。DLL と ASP.NET ファイルをサーバーに xcopy します。web.config で必要な変更を行い、SQL 接続文字列が運用サーバー データベースを指すように変更してアップロードします。
マシン キーを生成するようにしましたが、開発用の 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>
どんな助けでも大いに感謝します。