1

これは、安全な Web アプリケーションを構築するための私の最初の試みです。これはインターネット上にあり、IIS サーバー (ISP がホスト) と SQL 2008 db (同じく ISP がホスト) で構成されます。

簡単で汚いテストとして、私は Visual Studio でテンプレートを使用しています。ASP.NET 構成ツールのウィザードを使用するだけで認証を構成しました。ただし、これにより、Web アプリ内に隠されているデータベースが作成されます。

スケーラビリティを確保するのがベスト プラクティスのように思われるため、ユーザー資格情報を SQL サーバーに保持することをお勧めします。しかし、どうすればこれを行うことができますか?データベースへのアクセスが制限されています。テーブルを作成することはできますが、適切なスキーマを作成するためにサーバー上でツールを実行できるとは思いません。誰かが私を正しい方向に向けることができますか? いくつかのグーグルを実行しましたが、ASP.NET 1.1 の記事を見続けているため、何かが欠けている可能性があると思われます。ASP.NET 4.0 でこれを行うより良い方法があります。

4

2 に答える 2

2

ユーザーのログインとパスワードを格納するユーザーテーブルをSQLServerに作成します。パスワードをハッシュして、自分自身を含む管理者自身にも表示されないようにすることができます。次に、LINQを使用してフォーム認証中にプルし、ログイン名/パスワードをユーザーテーブルと照合します。

LINQの代わりに埋め込みSQLまたはストアドプロシージャを使用することもできます。ただし、埋め込みSQLは非常に安全ではないため、ストアドプロシージャとLinqが残ります。慣れている場合は、Linqを使用することをお勧めします。または、常に最も安全なストアドプロシージャを使用します。

于 2012-05-10T17:34:08.993 に答える
1

フォーム認証を使用するために、ASP.Net メンバーシップ フレームワーク全体を使用する必要はありません。それはあなたのために多くの配管作業(セキュリティなど)を行うので、可能であれば、おそらくそれを使用するのが最善です.

フォーム認証は、任意の認証スキーム (既存のものまたは自分で作成したもの) で使用できます。これは、認証スキームをハードコードすることさえできることがわかる、非常に単純化されたサンプルです (そうべきではありませんが、可能性を示しています)

最後に、コマンド ライン ASP.Net ツールを実行できない場合aspnet_regsql.exe、スキーマを作成するための SQL スクリプトは次の場所にありますC:\Windows\Microsoft.NET\Framework\[Framework version]

したがって、.Net 4 の場合は次のようになります。C:\Windows\Microsoft.NET\Framework\v4.0.30319

インストールと「アンインストール」の両方のSQLスクリプトがあります-たとえば

  • InstallMembership.sql
  • UninstallMembership.sql

... 等々....

于 2012-05-11T04:51:45.020 に答える