【发布时间】:2018-04-19 00:49:12
【问题描述】:
我正在使用 ASP.NET Core 开发一个 API 项目,我必须使用公司拥有的自定义 OAuth 服务(也是 ASP.NET Core)。应该在对 API 发出的每个请求上调用该服务,以验证用户是否有权使用该资源,所以我想我可以在 API 上创建一个中间件来处理对 OAuth 服务的请求。
我的问题是我还在学习 C# 和 ASP.NET Core,我不确定这是否可以完成。我做了一些谷歌搜索,但我找不到在中间件上完成 HttpClient 调用的示例。我想知道是否有人可以提示我是否走在正确的道路上,或者这是否被认为是不好的做法,以及有更好的方法来实现它。
【问题讨论】:
-
这似乎有点笨拙。大多数 oauth 流程都承认,在一段时间内使用可刷新的授权令牌而不是在每个请求上都使用“请求验证服务”是可以接受的。在每个请求中“重新验证”用户真的是你需要的吗?
-
您好,感谢您的快速评论。我确实注意到它有点笨拙,但他们希望,至少目前,要使用该服务。我建议公司也改用这种工作流程,但我希望如果可能的话,我可以使用我现在拥有的东西。
-
你应该没问题,只要你小心重用一个 HttpClient 实例。
-
看起来应该使用身份验证方案。不要认为你需要中间件
-
HttpClient或HttpContext?
标签: c# authentication asp.net-core httpclient middleware