2012-05-10 7 views
1

これはセキュリティで保護されたWebアプリケーションを構築するための最初の試みです。それはインターネット上にあり、IISサーバー(ISPによってホストされている)とSQL 2008 db(ISPでもホストされています)リモートSQLサーバのユーザ認証情報を使用してフォーム認証を使用してasp.net 4.0 Webサイトを保護

私はちょうどVisual Studioでテンプレートを使用しています。

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

+0

ツール。 「実際の」SQL Serverに移動し、それに応じて接続情報を調整するだけです。 – Filburt

答えて

1

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

フォーム認証は、任意の認証スキーム(既存のものまたは自分で作成したもの)で使用できます。ここにoverly simplistic sampleがあります。認証スキーム(ではなく、)をハードコードすることもできますが、可能性が示されています。

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

だからネット4のために、それは次のようになります。 C:\Windows\Microsoft.NET\Framework\v4.0.30319

両方ともインストールして、「アンインストール」のSQLスクリプトがある - 例えば

  • InstallMembership.sql
  • UninstallMembership.sql

...というように.... ASP.NET構成によって作成されたデータベースを使用するように縛られない

2

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

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

関連する問題