【发布时间】:2017-02-21 15:42:47
【问题描述】:
我已经在我的 MVC 应用程序中添加了一个自定义的授权属性,它确实
if (!this.Roles.Split(',').Any(filterContext.HttpContext.User.IsInRole))
如果为真,它会将您重定向到未经授权的位置。
我将此属性放在控制器级别的控制器上。
一个动作可以正常工作,而在一个动作中我未经授权。
角色系统中是否存在一些错误或问题?我读过注销和登录可能会强制刷新某些缓存或其他内容,但是我使用的系统使用您的域凭据进行身份验证,因此无法注销。
我已尝试重新启动应用程序池并删除我的会话 cookie,但没有任何效果。
之前有没有人遇到过这个特定问题,或者有一些关于可能刷新与之相关的缓存的指导(假设它是一个缓存问题)?
ETA:系统上的另一个用户为自己分配了控制器所需的角色,这两个操作对他来说都很好。所以也许我的用户在某种程度上被窃听了。这是在 UAT 上进行的调试,比在我的本地机器上运行要稍微困难一些(工作正常)。
ETA2:我很确定这是一个缓存问题,因为在查询字符串中转到带有 ?1=1 的 URL,它可以工作。我无法使缓存无效。这可能是将来为人员分配角色时的问题。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 authorization authorize-attribute