将全局令牌存储在Cache中

时间:2018-01-24 14:05:10

标签: c# permissions token orchardcms authorizationservices

我在AuthorizationServiceEventHandler CheckingComplete事件中有一个模块,我向外部API发送请求,这给了我一些指令比如应该为用户启用/显示哪些模块。

我想要遵循的appraoch是将这些指令存储在缓存中的某个地方,然后每当用户请求服务模块Exposed (通过控制器)时,模块将使用CacheManager
ViRuSTriNiTy回答的标准权限的问题是指令或权限可能会根据其他权限而变化(如果授予权限A,也授予权限C),并且此指令由外部决定API将一直在变化。

我试图找到适当的方法或方法来实现这一目标。

这说明我的模块将要做什么。 ViRuSTriNiTy

因此,API不会明确指出module 1module 3应该启用,它只会为您提供说明。 住宅应替换为医院

编辑1: 我所说的房子应该是图片中的Hopistal Api用Hopistal而不是房子回应我只是搞砸了。

编辑2: 我想要实现的是一个模块,它控制特定用户应该使用哪些模块,每个用户都有不同的特性,API将检查并决定将哪些值返回给模块,然后模块将根据这些指令将确定哪些模块可供用户使用。

例如,没有 house 的用户将不会使用House module类似的权限,模块将返回带有样式消息的未授权的httpcode:您没有房子。

1 个答案:

答案 0 :(得分:0)

我认为您需要先定义一些权限。

示例:

模块House中的权限A:CanAccess

模块Children中的权限B:CanAccess

现在在您的处理程序中,您可以从权限中获取模块,然后要求API返回适当的值。

权限House.CanAccess>模块House - > ExternalAPI.CanAccess(House) - >根据需要从处理程序返回