2

Windows 認証を使用した単純な ASP.NET イントラネットに取り組んでいます。サイトへのアクセスを許可するために Active Directory を使用してユーザーを認証していますが、サイト固有のユーザー ロールを実装して、既に配置されている Windows ユーザー グループを妨害したり追加したりすることなく、ページとコンテンツへのアクセスを管理したいと考えています。

これを達成する方法についての私の考えは、テーブルを作成し、各ユーザーのテーブルにUserRoles特定のものを配置することでした。次に、ユーザー名とテーブルを比較して、ユーザーがどの役割に属しているかを調べます。RoleIdUsersCurrently Logged InUsers

質問 1:

これは、これを実行するための適切な方法ですか?

質問 2 (質問 1 の答えが「はい」の場合):

現在のユーザーの正しい RoleId を選択し、IF ステートメントで使用するにはどうすればよいですか?

これは私が考えていたことです:

var db = Database.Open("Database") ;

// Find out what my Windows Username is
var currentUser = Request.LogonUserIdentity.Name.Substring(Request.LogonUserIdentity.Name.LastIndexOf(@"\") + 1);

// Find out what Role I'm in    
var getUser = "SELECT RoleId FROM Users WHERE UserID = @0";

// Get the result
var selectedUser = db.Query(getUser, currentUser);

var requiredRole = "1";

// Choose where I should go
if (SelectedRoleId != requiredRole)
{
    Response.Redirect("~/AreaRestricted");
}

どんな助けでも素晴らしいでしょう。

4

2 に答える 2