0

最初に: SQL Server 2008 を使用した ASP.NET Web アプリケーション プロジェクト

ユーザー アカウントを格納する Security というテーブルを使用して、古い DB を継承しました。列は次のとおりです。

ID、名前、user_name、password、および access_level。

access_level は、Web アプリの特定の部分へのアクセスを指定する 1 から 3 の整数値を保持します。これらの範囲は、1 = ユーザー、2 = パワー ユーザー、3 = 管理者です。このアクセスレベルに従って、一部のユーザーが一部の情報を表示したり、他のユーザーに対して非表示にしたり、他のユーザーに対して表示および編集可能にしたりする必要があります。

私は古い ASP.NET に精通しているため、プロバイダー モデルは初めてです。これまで読んだことから、次のことができます。

1) カスタム MembershipProvider と RoleProvider を作成し、それらを使用する

2) 非表示のテキスト フィールドを使用して独自のログイン システムを作成し、データを永続化する

これを実装する最良の方法は何ですか? カスタム MembershipProvider の作成を開始しましたが、このような単純なスキーマにはやり過ぎのようです。これを実装するには、もっと簡単な方法が必要です。提案や説明は大歓迎です。

4

2 に答える 2

1

許可された役割に基づいてページを制限する必要がない場合は、次を使用できます。

// After custom validation
FormsAuthentication.SetAuthCookie(username, false);

ただし、(web.config内の)許可された役割に基づいてページを制限する場合は、カスタムMembershipProviderとRoleProviderを実装することをお勧めします。

次のメソッドをオーバーライドする必要があります。

MembershipProvider

public override bool ValidateUser(string username, string password)

public override MembershipUser GetUser(string username, bool userIsOnline)

RoleProvider

public override bool IsUserInRole(string username, string roleName)

public override string[] GetRolesForUser(string username)
于 2012-11-21T19:33:11.350 に答える
1

ログインまたは登録モジュールのカスタム コントロールを作成できます。理解しやすく、デバッグしやすいかもしれません。また、メンバーがサインインしようとしているときに、access_level を確認してアクセス権を与えることができます。

于 2012-11-16T07:05:22.523 に答える