我有一个内部网MVC核心Web应用程序,它具有身份验证和授权,并且都可以工作。我们不想在用户尝试访问未经授权的操作时将用户转回空白的拒绝访问页面,而是向他们提供反馈,例如他们被拒绝访问的操作以及为什么他们可以说话如果他们有合法需要,他们会聪明地提高他们的访问级别。
我有一个自定义AuthorizationHandler
,HandleRequirementsAsync
中提供了所有必要信息,但我找不到实际返回信息的方法。此方法仅返回Task.CompletedTask
,尽管调用方法似乎知道context.Succeed
的更改。
我没有任何运气找到路线图授权过程的任何文档,调用了哪些方法以及允许请求继续执行所需操作或最终到达拒绝访问页面的顺序。
似乎OnAuthorization
调用HandleRequirementAsync
,但这是我的推测。有一些覆盖OnAuthorization
的例子,但是当前版本的.Net Core等都没有...我最接近的是:
protected override Task OnAuthorizationAsync(AuthorizationFilterContext Context)
{
}
...但VS报告
No Suitable Method Found to Override.
最重要的是,我发现了一个来自微软安全人员的吹风机的帖子,该帖子说不要这样做,太有机会打破一些可能导致控制流程没有文档的原因。< / p>
我发现的几乎所有授权问题都涉及授权某人做某事,而不是就他们为什么不能提供有意义的反馈。
我被困住了,可以真正使用一些帮助。
谢谢!!
我被困住了,希望有人能指出我正确的方向。