0
我正在尝试为我的BaseController执行自定义策略。此策略的目的是防止每个其他控制器中的代码重复。ASP.NET 5自定义策略中的访问会话
services.AddAuthorization(options =>
{
options.AddPolicy("PolicyName", policy =>
{
policy.AddRequirements(*INSERT POLICY HERE*);
});
});
我试图添加策略像这样在ConfigureServices方法Startup.cs
有什么收获?
我想在我的策略中访问Session,因为我在计算中需要它。我使用依赖注入IHttpContextAccessor来做到这一点。
问题出现在INSERT POLICY HERE部分。因为我认为(从我在网上看到的):new MyPolicy()
但是这并不起作用,因为它需要IHttpContextAccessor
。
我怎样才能将它转化为保单?如果有更好的方法,请随时分享
我会尽快尝试。对不起,反馈迟了,但我一直没能找到这个 – Lokuzt
所以我有一个SessionUtils类(所以我不必在每个策略中都使用相同的操作)。这个类使用IHttpContextAccessor。我如何将其包含在要求中?或者是一个SessionUtils类是一个坏主意? – Lokuzt
所以你可以实现多个处理程序的要求(我现在正在写文档实际上)。处理程序也可以处理多个需求。因此,例如,如果您想要门禁系统需求,您需要编写一个处理程序,用于检查员工是否有徽章,并检查当前身份是否为保安人员,然后在服务集合中注册这两个处理程序。那么当一个政策想要这个要求时,它会检查*两个*处理程序,并且如果任何一个成功通过了策略。 – blowdart