3

RpxNow(OpenID)を使用してユーザーがログインできるようにする非常にシンプルなASP.NETMVCアプリケーションがあります。ここで、ユーザーが自分のアカウントを編集できるようにし、管理者が他のユーザーのアカウントを編集できるようにします。

2つの別々の「アカウントの編集」ビューがあります。

  • 〜/ account / edit /
  • 〜/ account / edit / 1

1つ目は、ログインしたユーザーに基づいてアカウントの詳細を読み込みます。2つ目は、提供されたAccountIdを使用してアカウントの詳細をロードします。1つ目は標準ユーザー用で、2つ目は管理者用です。

最初に役割(ユーザー、管理者)を定義する必要があり、次にその役割にユーザーアカウント(または複数)を割り当てる必要があります。

次に、コントローラーでの役割を確認する必要があります。私はこの概念が好きです:

http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/

だから、質問に至るまで:

  1. web.configでロールのリストを定義する簡単な方法はありますか?
  2. web.configでどのユーザーがどのロールに属しているかを定義する簡単な方法はありますか?
  3. メンバーシップ/ロールプロバイダーを使用せずにこれを行う方法はありますか?
  4. 私は間違った視点からこれにアプローチしていますか?アプリケーションを2つのブランチに分割し、フォルダーの承認に基づいてそれらを保護する必要がありますか?
4

2 に答える 2

3

私はweb.configに認証データを保存するのが好きではありません。私はそれをデータベースまたは他のxmlファイルに保存することを好みます。

Xmlメンバーシップ/ロールプロバイダーをご覧ください。これは、ユーザーデータの読み取りにメンバーシップ/ロールを使用しますが、xmlファイルからユーザー認証データを保存および読み取る方法を示しています。

アプリケーションを分割すると、問題が移動し、解決されません。

于 2009-08-20T11:11:14.947 に答える
0

パーミッションの配管全体は依然としてIPrincipalsを中心に展開していることを忘れないでください。役割/メンバーシップのプロバイダーは、ほとんどのアプリケーションがその配管コードを記述しなくてもよいようにするための単なるウィンドウドレッシングです。この場合、データベースにバックアップされた(またはリストが十分に短い場合は静的な)ロールのリストとロール内のユーザーのリストを簡単に追加して、それを照会できます。カスタムIPrincipalの後ろにそれを包み、その子犬を適切な場所に詰めれば、あなたは金色になります。

于 2009-08-20T18:21:25.450 に答える