メンバーシップ プロバイダーの使用が必要な新しいプロジェクトを開始すると、メンバーシップ データベースを含むリモート データベースに接続できないことがわかりました。
aspnet_regsql を実行し、リモート サーバー上にメンバーシップ データベースを作成できましたが、ASPNET 構成 (cassini 開発サーバー) に移動すると、リモート サーバーに接続されません。
メンバーシップ プロバイダーの使用が必要な新しいプロジェクトを開始すると、メンバーシップ データベースを含むリモート データベースに接続できないことがわかりました。
aspnet_regsql を実行し、リモート サーバー上にメンバーシップ データベースを作成できましたが、ASPNET 構成 (cassini 開発サーバー) に移動すると、リモート サーバーに接続されません。
多くの検索の後、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 から直接取得されました。
<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>
ステップ 2: これをコピーします。
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=VMK\sqlexpress;Initial Catalog=commodity_exchange;Integrated Security=True" providerName="System.Data.SqlClient"/>
解決策は次のとおりです。
ステップ 1: Visual Studio のコマンド プロンプトを起動 タイプ: aspnet_regsql サーバーを指定: sqlexpress の場合、サーバー = ホスト名\sqlexpress * ** * ** * *** *Windows 認証を使用
ステップ 2: これを Web 構成にコピーします。ユーザー名またはパスワードを指定しないでください。なぜなら、Windows 認証で接続しているためです。
ステップ 3 : Web 管理ツールのセキュリティ > 認証タイプを「インターネットから」に変更します。
今すぐお楽しみください。