0

私が取り組んでいるasp.net Webプロジェクトがあり、自分の役割などが.mdfファイルに保存されていることがわかりました。SQL Management Studio (SQLExpress 2005 を使用) 経由で接続しようとしているときに、次の記事を見つけました。

https://help.maximumasp.com/SmarterTicket/Customer/KBArticle.aspx?articleid=878

さて、私の質問は、これを行うべきですか? 完了したら、ウェブサイトをホスティング プロバイダーにアップロードするつもりですが、プロセスをできるだけスムーズにしたいと考えています。

通常、MDF ファイルを Web サイトと一緒にサーバーに移動するだけですか?それとも、情報を SQL Server 自体に保存する方がよいでしょうか? Web サイト用の DB を既に持っています... asp.net のロール情報を自分の DB に統合して、管理する DB を 1 つだけにすることはできますか?

読んでくれてありがとう、~~コルテン

4

1 に答える 1

1

ASP.NETメンバーシッププロバイダーを使用することは、ユーザーの資格情報を管理するための有効な方法です。MDFファイルをアップロードすると、誰かがMDFファイルを取得して、すべてのユーザーの詳細を取得できる可能性があるというリスクが生じます。ホスティング環境によって提供されるSQLデータベースにこれを保存することは、接続の詳細が危険にさらされておらず、SQLインジェクション攻撃に自分自身をさらさず、プロバイダーも自分自身をさらさない限り、通常はより安全です。 SQLインジェクション攻撃。

メンバーシップ情報は、メンバーシップテーブルと名前が競合しない限り、アプリケーションの他の部分と同じデータベースに保存できます。aspnet_regsqlコマンドラインでデータベース接続の詳細を指定することにより、必要なテーブルを作成できます。

web.configファイル内で、使用する接続文字列を指定できるように、roleManagerとメンバーシッププロバイダーを変更する必要があります。すなわち

<system.web>
    <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
      <providers>
        <remove name="AspNetSqlRoleProvider" />
        <add name="AspNetSqlRoleProvider" connectionStringName="MembershipSQLConnectionString"
             applicationName="/"
             type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </providers>
    </roleManager>
</system.web>
于 2009-05-11T02:50:57.237 に答える