スタンドアロンファイルをデータベースとしてアタッチするだけの機能は、実際には SQL ServerのExpressエディションでのみ利用できます。.mdf
それ以外の場合にすべきことは、SQL Server インスタンスにデータベースを作成し、.mdf ファイル名ではなく、データベース名で参照することです。
ASP.NET メンバーシップとロール サブシステムに必要なテーブルとストアド プロシージャを作成するにはaspnet_regsql
、SQL Server インスタンスに対してユーティリティを使用する必要があります。あなたはそれがうまくいかなかったと言いました-どうしてうまくいかないのですか?? エラーが出ましたか?? もしそうなら:何のエラー??
使用方法の詳細については、aspnet_regsql に関する MSDN ドキュメントを参照してください。ASP.NET メンバーシップとロール サブシステムを作成するには、次を使用します。
aspnet_regsql -S (your server name here) -E -A mr
は-E
、統合セキュリティ (現在の Windows ログオンなど) を使用して SQL Server に接続します。もちろん、そのユーザー アカウントには、これらの操作に十分な権限が必要です! 特定の SQL Server ユーザーが必要な場合は、-U (username) -P (password)
これを実現するための 2 つのパラメーターがあります。
これらがすべて揃ったら、SQL Server で作成された新しいデータベース ( ) を実際に使用するように、ASP.NET メンバーシップとロール サブシステムを構成する必要もあります。ASPNETDB
既定では、aspnetdb.mdf
SQL Server Express インスタンスに添付されたファイルが使用されます。それを変更したので、構成を更新する必要があります! これを行う方法の詳細については、MSDN を参照してください
ステップ 1:新しく作成したデータベースに接続文字列を追加する
web.config
またはapp.config
で、新しく作成した ASP.NET メンバーシップ/ロール データベースに有効な接続文字列を追加します。
<configuration>
<connectionStrings>
<add name="ASPNETDB_Connection"
connectionString="Server=YourServer;database=aspnetdb;Integrated Security=SSPI;" />
</connectionStrings>
手順 2: - ASP.NET メンバーシップ サブシステムの有効な構成を追加し、手順 1 で追加した新しい接続文字列を参照します。何かのようなもの:
<configuration>
<system.web>
<membership defaultProvider="YourProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add name="YourProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="ASPNETDB_Connection"
applicationName="MyApplication"
enablePasswordRetrieval="false" enablePasswordReset="true"
requiresQuestionAndAnswer="true" requiresUniqueEmail="true"
passwordFormat="Hashed" />
</providers>
</membership>
ステップ 3:ロール サブシステムについても同じことを行います。
<configuration>
<system.web>
<roleManager defaultProvider="YourProvider" enabled="true" cacheRolesInCookie="true" >
<providers>
<clear />
<add name="YourProvider"
type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ASPNETDB_Connection"
applicationName="MyApplication" />
</providers>
</roleManager>