2009-08-20 5 views
3

私は、RpxNow(OpenID)を使用してユーザーにログインできる、シンプルなASP.NET MVCアプリケーションを用意しています。私は今、ユーザーが自分のアカウントを編集し、誰かのアカウントを編集するための管理者アクセス権を提供できるようにしたいと考えています。私は2つの別々の "アカウントの編集" ビュー持つデータベースを持たないASP.NET MVCロール

  • 〜/アカウント/編集/
  • 〜/アカウント/編集/

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

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

次に、コントローラの役割を確認する必要があります。私はこの考え方が好き:だから

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

、ダウン質問へ:

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

答えて

3

私はweb.configに認証データを保存することはできません。私はデータベースや他のxmlファイルに格納する方が好きです。

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

アプリケーションをブラッチングしても問題は解決して解決されません。

+0

カスタムロールプロバイダを実装しました。サイドノートでは、私はデフォルトのMembershipテーブル構造のファンではありません。特にOpenIDの場合はそうです。 – Junto

0

権限パイプライン全体が実際にIPrincipalsを中心に回転していることを覚えておいてください。役割/メンバーシッププロバイダはほとんどのアプリケーションがその配管コードを書く必要がないようにするウィンドウドレッシングです。この場合、データベースバックアップ(またはリストが短い場合は静的なもの)ロールのリストとロール内のユーザーのリストを簡単に追加してそれを照会することができます。カスタムIPrincipalの後ろにそれを包み込み、適切な場所に子犬を入れて、あなたは金色です。

関連する問題