2017-05-04 69 views
1

有没有办法在运行时改变角色。 https://channel9.msdn.com/Series/Customizing-ASPNET-Authentication-with-Identity/02他在32:43询问asp.net web api授权框架有没有办法在运行时动态改变角色

+0

举例如果您正在度假,但您想授权您的助理助理批准系统中的某些提议。 您认为这是将您的帐户信息提供给助理助理的最佳方式吗? 我有一个想法,就像这种情况下每个控制器的角色改变角色dynamicaly。 例如, aproval方法的Aproval作用。 发送提案的提案角色。 我想我可以添加或删除这些角色dynamicaly 但这对用户来说是一个漫长的过程。 我不喜欢添加个人角色。我想学习如何去做。 – Kagan

回答

0

虽然有一个有趣的问题,我不知道我什么时候会想用这个。

我想指出的一点是:要确定用户的角色,将使用令牌中添加的声明。所以不会有数据库调用。如果您想要动态执行某些操作,则可能需要为实际角色调用数据库。

使用[授权]属性,您将无法动态执行任何操作。它只是将字符串与索赔进行比较。如果它匹配访问被授予,否则访问被拒绝。解决此问题的一种方法是为所有授权用户授予访问权[授权],并在代码中测试User.IsInRole(x)。

其他选项可能是编写自己的AuthorizeAttribute或添加AuthorizationFilterAttribute。

相关问题