6

メンバーシップ プロバイダーの使用が必要な新しいプロジェクトを開始すると、メンバーシップ データベースを含むリモート データベースに接続できないことがわかりました。

aspnet_regsql を実行し、リモート サーバー上にメンバーシップ データベースを作成できましたが、ASPNET 構成 (cassini 開発サーバー) に移動すると、リモート サーバーに接続されません。

4

4 に答える 4

18

多くの検索の後、machine.config (c:\windows\Microsoft.NET\Framework\v2.0.50727\CONFIG) で指定された既定のメンバーシップ プロバイダーが、常にローカルホストで実行されている SQL Server を指していることがわかりました。

machine.config を変更する代わりに、プロジェクトの web.config で設定する方法があります。

1) リモート データベースへの接続文字列を設定する

    <connectionStrings>
      <add name="aspnet_membership" connectionString="<your_connection_string>"/>
    </connectionStrings>

2)<system.web>デフォルトのプロバイダーを再定義します。

  <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="aspnet_membership"
            enablePasswordRetrieval="false" 
            enablePasswordReset="true" 
            requiresQuestionAndAnswer="true" 
            applicationName="/" 
            requiresUniqueEmail="false" 
            passwordFormat="Hashed" 
            maxInvalidPasswordAttempts="5" 
            minRequiredPasswordLength="7" 
            minRequiredNonalphanumericCharacters="1" 
            passwordAttemptWindow="10" 
            passwordStrengthRegularExpression=""/>
    </providers>
  </membership>

<remove name="AspNetSqlMembershipProvider"/>が鍵です!他のすべてのキー/値は、machine.config から直接取得されました。

于 2008-12-06T00:07:23.013 に答える
2
<membership>
       <providers>
           <clear/>
           <add name="AspNetSqlMembershipProvider"
               type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               connectionStringName="aspnet_membership"
               enablePasswordRetrieval="false"
               enablePasswordReset="true"
               requiresQuestionAndAnswer="true"
               applicationName="/"
               requiresUniqueEmail="false"
               passwordFormat="Hashed"
               maxInvalidPasswordAttempts="5"
               minRequiredPasswordLength="7"
               minRequiredNonalphanumericCharacters="1"
               passwordAttemptWindow="10"
               passwordStrengthRegularExpression=""/>
       </providers>
   </membership>

メンバーシップ クラスに基づいてロールとプロファイル スタッフを機能させるには、次の行を追加する必要がありました。

   <profile>
       <providers>
           <clear/>
           <add name="AspNetSqlProfileProvider"
           connectionStringName="aspnet_membership"
           applicationName="/"
           type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
       </providers>
   </profile>

   <roleManager enabled="true">
       <providers>
           <clear/>
           <add name="AspNetSqlRoleProvider"
           connectionStringName="aspnet_membership"
           applicationName="/"
           type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
           <add name="AspNetWindowsTokenRoleProvider"
           applicationName="/"
           type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
       </providers>
   </roleManager>   
于 2013-02-04T00:53:40.260 に答える
1

ステップ 2: これをコピーします。

<remove name="LocalSqlServer"/>

<add name="LocalSqlServer" connectionString="Data Source=VMK\sqlexpress;Initial Catalog=commodity_exchange;Integrated Security=True" providerName="System.Data.SqlClient"/>

于 2011-05-12T14:15:02.033 に答える
0

解決策は次のとおりです。

ステップ 1: Visual Studio のコマンド プロンプトを起動 タイプ: aspnet_regsql サーバーを指定: sqlexpress の場合、サーバー = ホスト名\sqlexpress * ** * ** * *** *Windows 認証を使用

ステップ 2: これを Web 構成にコピーします。ユーザー名またはパスワードを指定しないでください。なぜなら、Windows 認証で接続しているためです。

ステップ 3 : Web 管理ツールのセキュリティ > 認証タイプを「インターネットから」に変更します。

今すぐお楽しみください。

于 2011-05-12T14:11:48.820 に答える