1

以前に解決した質問と同じ問題がありますが、この解決策は役に立ちませんでした。

以前の質問と回答を以下に投稿しました。

フォーム認証は開発サーバーでは機能しますが、運用サーバーでは機能しません (同じ 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>

どんな助けでも大いに感謝します。

4

2 に答える 2

1

1) defaultProvider 設定を追加してみてください。

<membership defaultProvider="AspNetSqlMembershipProvider">
      <providers>

2) あなたが持っている

applicationName="/"/

アプリケーション テーブルを見てください。使用されている名前は何ですか?

3)

<add name="AspNetSqlMembershipProvider"> 

「AspNetSqlMembershipProvider」の後に閉じ括弧を付けないでください

于 2010-06-03T07:51:11.587 に答える
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="/"/>
于 2010-06-03T07:48:53.083 に答える