ASP.NETCore应用程序的用户具有不同的角色。不同的角色可以访问不同的页面。
我已经实施了策略并正确地为相关角色授权了各种文件夹。
但我也需要重定向一些用户到一个不同的区域,以便他们看到他们应该看到的页面,而不是只是得到一个访问拒绝错误。
我知道我可以从我的常规索引文件中使用User.IsInRole()
并将它们重定向到正确的页面,但我想我更希望他们永远不能加载他们没有访问权限的页面。而且我更愿意对这些用户禁用我的常规索引文件。
我该怎么做?是否已使用策略等支持此功能?或者我需要编写某种中间件吗?
1条答案
按热度按时间e4yzc0pl1#
在ASP.NET中,可以使用HttpContext对象及其Response属性将用户重定向到中间件中的其他请求。下面是一个如何实现此目标的示例:
在中间件的InvokeAsync方法中,可以在DetermineRedirectionLogic方法中添加自定义逻辑,以根据当前请求确定是否需要重定向。如果需要重定向,可以使用context.response.redirect将用户重定向到其他URL。
确保在Startup类的Configure方法中注册中间件: