0

役割管理asp.netを使用したいのですが、Visual StudioはASPNETDB.MDF常にファイルを作成し続けるので、これは必要ありません。の代わりに使用したい既存のデータベースファイルがすでにありますASPNETDB.MDF。これは主に、不要なユーザーの不要なディレクトリリストを拒否するためのものです。

前もって感謝します。

4

1 に答える 1

2

ASPNETDB.MDF(無関係な添付データベースファイル)を削除し、すべてのセキュリティ情報(ユーザー、ロール)をカスタムSQLデータベース内に保存できます。

これらの簡単な手順に従ってください

ステップ01-SQLデータベースにセキュリティテーブルを作成する

まず、SQLデータベース内にASP.NETセキュリティ情報を保持するテーブルを作成する必要があります。そのためのウィザードがあります。

ASP.NET SQL Serverセットアップウィザードがあります(WindowsXPおよびWindows2008 Server):

%WinDir%\ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_regsql.exe

ASP.NET SQL Serverセットアップウィザードは、次のいずれかにあります(Windows 7 x64)。

%WinDir%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regsql.exe%WinDir%\ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regsql.exe%WinDir%\ Microsoft.NET \ Framework64 \ v2.0.50727\aspnet_regsql。 exe%WinDir%\ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_regsql.exe

このセルフガイドウィザードは非常にシンプルです。SQL Server(通常は。\ SQLExpress)と目的のデータベースを選択すると、ウィザードによって、カスタムSQLデータベース内でASP.NETセキュリティを処理するために必要なすべてのテーブルとオブジェクトが作成されます。

ステップ02-マシンキーを生成する

セキュリティテーブル内のパスワードは暗号化されて保存されます。web.configファイル内に一意のマシンキーを生成して記録する必要があります。

http://aspnetresources.com/tools/machineKeyにアクセスして、数行のコードにきちんとラップされた、web.configの準備ができた一意のマシンキーを入手してください行を生成し、XML要素内に配置します。

... <machineKey
      validationKey="6B6DC7FF0657AEE33FEB36189072D99551F27E281EAEEC8B0516B188A85CF2E4C
                     4A988429765C625979A232B5BE78D6E52CB59C3675B44FCA032C24B2C49DC5"
      decryptionKey="CFED70360D049F182EA009258C34ED698A799774A2687AAE94098C71C6BF38C8"
      validation="SHA1"
      decryption="AES" />
</system.web>

Step03-web.configを変更します

web.configを変更して、メンバーシップ、ロール、およびプロファイルプロバイダーを含めます。

以下の行に類似したコードをXML要素内に配置します。「Your」という単語を、命名規則に一致する適切な名前に置き換えます。

..。

<membership defaultProvider="YourMembershipProvider">
  <providers>
    <add connectionStringName="YourConnectionString" applicationName="/"
       enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false"
       requiresUniqueEmail="true" passwordFormat="Encrypted"     maxInvalidPasswordAttempts="5"
       passwordAttemptWindow="10" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0"
       name="YourMembershipProvider" type="System.Web.Security.SqlMembershipProvider" />
  </providers>
</membership>

<roleManager enabled="true" cacheRolesInCookie="true" cookieName="YOUR_ROLES" defaultProvider="YourRoleProvider">
  <providers>
    <add connectionStringName="YourConnectionString" applicationName="/" name="YourRoleProvider"
      type="System.Web.Security.SqlRoleProvider" />
   </providers>
 </roleManager>

 <profile defaultProvider="YourProfileProvider">
    <providers>
       <add name="YourProfileProvider" connectionStringName="YourConnectionString"
      applicationName="/" type="System.Web.Profile.SqlProfileProvider" />
     </providers>
 </profile>

これで、WebDeveloperまたはVisualStudio内でASP.NET構成を実行し、すべての新しいユーザーが/App_Data/ASPNETDB.MDFではなく、カスタムデータベース内に作成されていることを確認できます。

于 2012-11-20T08:47:28.127 に答える