私が欲しいもの:
ログインしているユーザーのみがアプリケーションを表示できるイントラネット アプリケーション...および管理者ロールとメンバー ロール。
1:
MVC 5.0 Web アプリケーション (イントラネット用) を作成しました。
ホームコントローラーを備えたホームビューがあります...管理コントローラーを備えた管理ビューがあります。
ホームページには、条件付きのリンクがあります(まだリンクではありませんが、何でも):
@if(User.IsInRole("Admin")){
<li>Admin</li> @*Will be link to admin controller action*@
}
「管理者」の役割を持つ 1 人のユーザーを作成し、そのユーザーがユーザー名と「管理者」または「メンバー」のいずれかの新しい役割を持つ新しいユーザーを作成 (Windows 認証ログインに割り当てる) できるようにしたいと考えています...
2:
次に、管理者ロールを持つユーザーが、自分に適したロールで SQL データベースに示されているすべてのことを実行できるようにしたいと考えています。
例えば、
John は一部のテーブル ("Member") に対する読み取りおよび書き込みアクセス権しか持っていませんが、Jack と Jill はすべてのテーブル ("Admin") に対する読み取りおよび書き込みアクセス権を持っています。
John は [ホーム] ビューで [管理者] リンクを表示できませんが、Jill は表示できます。管理者コントローラーのアクションは、「メンバー」ではなく「管理者」ロールを持つユーザーのみを許可するようにロックダウンされています...
コアの質問 (1 と 2 を念頭に置いて):
ここには 2 つの認証セットがあり、1 つはアプリケーション自体の Windows 認証用で、もう 1 つはデータベース用です。私はかなりの量の資料を読みましたが、Web フォーム認証スキル セットから来て、一貫して混乱しています。それは私の最初のイントラネット アプリケーションです...少し混乱しています。
私がこれまでに行ったこと:
現在、Windows 認証を有効にしており、アプリケーションを正常に使用して以下を呼び出すことができます。
@User.Identity.Name
私が誰であるかを知るために...
補足:
Authorize パラメーターがどのようなコンテキストで使用されるのかを理解したいと思います。
[Authorize(Roles="Admin")]