c# - 这是处理中间件身份验证重定向逻辑的好方法吗?
问题描述
我想问这种在中间件级别处理重定向的方法是否可以,或者如何“使其以良好的方式工作”,因为尽管它可以在例如 chrome/firefox/postman 中工作,但我仍然不确定。
我的中间件调用:
public async Task Invoke(HttpContext context)
{
if (endpointRequireAuthentication(context.Request.Path))
{
if (!context.User.Identity.IsAuthenticated)
{
context.Request.Method = "GET";
context.Request.Path = "/Unauthorized";
}
}
await _next(context);
}
解决方案
IMO,您应该使用类似IAuthorizationRequirement
处理授权的东西,然后生成 401 异常并在其他端点上捕获或创建自定义异常中间件。
推荐阅读
- sql - PostgreSQL 更新日期范围
- azure - 通过 Azure Blob 存储将数据复制进出雪花
- html - 调整窗口宽度时,导航栏总是从右侧推送
- rust - 如何重用 sqlx::Executor?
- apache-flink - Flink 是否知道它何时在没有应用程序状态的情况下重新启动?
- javascript - 创建一个非常简单的 Dynamic Google Script Web App
- r - 如何在R中将地理编码转换为真实地址
- python - Python Selenium 查找特定类并忽略其他类
- python - C++ FIX 实现 --> 会话用户无效。用户名和 SenderCompId 必须匹配
- javascript - 如何制作命令行节点应用程序循环?