0

ASP.NET Web アプリケーションの顧客 (クライアント) は企業であり、各企業には、サイトにアクセスできる多数のユーザーがいる場合があります。

したがって、たとえば、CompanyA はサイトを購読して、サイトのサービスを利用します。その会社のスーパーユーザーがすぐに作成されます。次に、このスーパーユーザーは、サイトにアクセスできる CompanyA のユーザーをさらに作成する権限を持っています。

したがって、一般に、各ユーザーは CompanyName と UserName によって識別されます

一般的な ASP.NET フォーム認証では、自動ログインと登録機能が提供されますが、ユーザー名とパスワードのフィールドのみが使用されます。

.NET フレームワークは、Login コントロールと Register コントロールにCompanyNameフィールドとCompanyPasswordフィールドを含める方法を提供していますか?

会社と最初のスーパーユーザーも、サイトの管理者によってシステムに登録される場合があります。

実際に私が望むのは、Username と Password だけでなく、提供された .NET Login コントロールにCompanyNameフィールドを含めることです。

これを行う .NET フレームワークの方法はありますか、それともカスタム コーディングする必要がありますか? 後者の場合、ベスト プラクティスはどれですか。

4

2 に答える 2

3

あなたのシナリオでは、会社名はまったく必要ありません。ユーザー名が一意の列である限り、ユーザーが所属する会社を検索できるはずです。必要なのは、ユーザー名を会社 ID にリンクする user_company テーブルだけです。スーパー ユーザーが作成されると、そのユーザーが所属する会社がわかります。スーパー ユーザーがユーザーを作成すると、そのユーザーが所属する会社もわかります。ログイン ページでは、ユーザー名とパスワードのみを要求する必要があります。もちろん、同じユーザー名で別の会社のユーザーを許可したくない場合は、これは合理的であり、単純化するための良いトレードオフだと思います.

于 2012-05-25T10:43:17.667 に答える
1

ASP.Net Forms 認証では、必要な既存または計画中の認証スキームを使用できます

MSDNのこの (非常に単純化された) 例を参照してください。必要に応じて、認証スキームをハードコーディングすることもできます。そうすべきではありませんが、全体的なアイデアが得られます

ASP.net メンバーシップは、使用したい場合に Microsoft から提供されます (必須ではありません)。それを使用する場合に必要なすべての足場があり (言及したデータベースを含む)、デフォルトでフォーム認証によって使用されます(排他的ではありません)。

于 2012-05-25T14:23:04.720 に答える