0

大学のメンバーシップを必要とする Web サイトを作成しました。Visual Studio の Web 管理ツールを使用して、ユーザーとルールを作成しました。Visual Studio からテストすると、正常に動作します。Web 管理ツールは、メンバーシップ データを保存する App_Data フォルダーに ASPNETDB.MDF という名前の SQL データベースを自動的に作成します。私の質問は、IIS で Web サイトを追加したときにデータベースが機能するかどうかです。SQL Server データベースを作成して接続を追加する必要がありますか?回答してください。これは非常に重要です。非常に基本的なメンバーシップのみが必要です。

4

1 に答える 1

0

この SO 回答で説明されているように、/App_Data から db を使用できます:
ASP.NET: App_Data を webhost にデプロイする方法? - ただし、サーバーの設定によって異なります。

メンバーシップを使用する場合、必要に応じて別のサーバーで IIS サイトとデータベースを実行することを選択できるため、SQL/SQL Express のいずれかで別のデータベースから実行することを好みます。セキュリティ/スケーリングなどにも適しています。

データベースが作成されたら、aspnet_regsql.exe を使用してメンバーシップ サービスをデータベースにインストールできます。通常は、c:\Windows\Microsoft.NET\Framework\< versionNumber >\aspnet_regsql.exe にあります。GUI またはコマンド ラインとして実行可能:
http://msdn.microsoft.com/en-us/library/x28wfk74.aspx

別のデータベースからメンバーシップを実行する場合は、web.config でプロバイダーを構成する必要もあります。これに沿った何か:

<connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="MyMembershipConnectionString" 
    connectionString="Data Source=SERVER123\SQLEXPRESS;Initial Catalog=Database123;Persist Security Info=True;User ID=User123;Password=Password123" providerName="System.Data.SqlClient" />
</connectionStrings>

< System.Web > セクション:

<roleManager defaultProvider="MySqlRoleProvider" enabled="true" 
    cacheRolesInCookie="true" cookieName=".ASPROLES" cookieTimeout="30" 
    cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All">
  <providers>
    <clear />
    <add name="MySqlRoleProvider" type="System.Web.Security.SqlRoleProvider"
        connectionStringName="MyMembershipConnectionString" applicationName="MyAppName" />
  </providers>
</roleManager>

<membership defaultProvider="MySqlMembershipProvider" userIsOnlineTimeWindow="720">
  <providers>
    <clear />
    <add name="MySqlMembershipProvider" 
         type="System.Web.Security.SqlMembershipProvider" 
         connectionStringName="MyMembershipConnectionString" 
         enablePasswordRetrieval="false" 
         enablePasswordReset="true" 
         requiresQuestionAndAnswer="false" 
         requiresUniqueEmail="true" 
         passwordFormat="Hashed" 
         minRequiredPasswordLength="8" 
         minRequiredNonalphanumericCharacters="0" 
         passwordStrengthRegularExpression="((?=.*\d)(?=.*[a-z]).{6,20})" 
         maxInvalidPasswordAttempts="5" 
         passwordAttemptWindow="30" />
  </providers>
</membership>

これと同様のセットアップを数回使用しましたが、問題はありません。/App_Data から db を使用する場合は、web.config のいずれかを実行する必要はありません。

于 2012-08-14T22:34:05.920 に答える