ログインしたユーザーが次の3つの条件のいずれかを満たしている場合にのみ、表示したいページの部分があります。ログインしているユーザーの複数の状態を確認するにはどうすればよいですか?例えば、ユーザーが記事の著者であるか特定の役割に属している場合
- 彼は著者です
- 彼は 'エディター'ロールに属しています。
- 彼は '管理者'ロールに属しています。
オブジェクトモデルはAddedByというプロパティが含まれています(Model.AddedBy)
どのように私はASP.NET MVCページのすべての3つの条件を確認することができます。
これまでのところ、私は以下のコード
<%if((Page.User.Identity.Name == Model.AddedBy) ||
(Page.User.IsInRole("Admin")) ||
(Page.User.IsInRole("Editors"))){%>
//Display this portion of page...
<%}%>
を試してみた。しかし、私のコードは、違いに気付くように見えるし、上記のコード内で囲まれたHTMLの一部を表示し続けることはありません。
どこか間違っている必要があります。
EDIT
コードで囲まれたHTML部分は、などのボタンは、記事の編集記事を削除します記事を追加、コメントを許可する、...だから記事の唯一の著者が参照することになっている含まれていそれらのボタンまたはチェックボックス。編集者ロールまたは管理者ロールのユーザーを除いて、所有していない記事を操作することもできます。彼は、(i)著者または(II)編集者役割または(III)管理役割にに属している場合
その方法は、ページにアクセスするユーザーには、その部分を見ることができます。
あなたの条件がより明確に反映されるように質問を編集しました。あなたのコードは私にとっては正しいので、次のステップはそれをデバッグすることです。それはあなたのModel.AddedByをコントローラの現在のユーザに設定するような何かをしているのですか?これはいつも正しいですか?私はブレークポイントを置いて、値が何であるかを見て、あなたが期待しているものかどうかを見ます。あなたが期待していないものを見つけたら、あなたの問題を見つけるでしょう。 –
AddedByが常に空の文字列であることがわかった(デバッグによって)。私はそれを修正した後、すべて正常に動作します。実際、私は最初に私が条件を正しく書いていないと思った。どうもありがとう。 – Richard77