2017-05-04 8 views
1

実行時にロールを変更する方法はありますか? https://channel9.msdn.com/Series/Customizing-ASPNET-Authentication-with-Identity/02 32:43asp.net web api authorization framework実行時にロールを動的に変更する方法はありますか

+0

例休暇中でしたが、あなたの助手があなたのシステム上のいくつかの提案を承認することを許可したい場合。 これは、あなたの助手にあなたのアカウント情報を与えるための最良の方法だと思いますか? 私は、このような状況のために各コントローラの役割のように動的に役割を変えるようなアイデアを持っています。 たとえば、 aprovalメソッドのAprovalロール。 提案を送信するための提案役割を送信します。 私はこれらの役割を動的に追加したり削除したりすることができると思う。 しかし、これはユーザーにとって長いプロセスになるだろう。 個人の役割を追加するのは好きではありませんでした。私はそれをする方法を学びたいと思います。 – Kagan

答えて

0

興味深い質問がありますが、いつ私がこれを使いたいのか分かりません。

私が指摘しておきたいことは、ユーザーが持つ役割を判断するために、トークンに追加されたクレームが使用されることです。したがって、データベースへの呼び出しはありません。動的に何かをやりたければ、実際の役割のためにデータベースを呼び出さなければならないかもしれません。

[Authorize]属性では、動的に何も実行できません。文字列を主張と比較するだけです。一致した場合はアクセスが許可され、それ以外の場合はアクセスが拒否されます。これを回避する1つの方法は、すべての許可されたユーザー[認可]にアクセスを許可し、User.IsInRole(x)がコードでテストすることです。

その他のオプションは、独自のAuthorizeAttributeを記述するか、AuthorizationFilterAttributeを追加することです。

関連する問題