【发布时间】:2020-08-31 12:01:39
【问题描述】:
我想让某人使用 OpenIdConnect 或使用持有者令牌的 OAuth 2.0 授权代码流在浏览器中访问我的 API。这是我在 Microsoft D365 OData 端点中看到的类似功能。我可以通过浏览器访问它们,但它们需要用户身份验证,或者我可以通过带有不记名令牌的 HTTP GET 访问它们。
如果我这样配置 Web API:
services.AddProtectedWebApi(this.Configuration).
AddSignIn(this.Configuration);
我可以从浏览器访问 GET API,如果我尚未通过身份验证,它会提示我输入凭据并进行身份验证。但是,如果我尝试使用不记名令牌从 Postman 访问相同的 API,它会返回一个网页进行身份验证。
如果我这样配置 Web API:
services.AddProtectedWebApi(this.Configuration);
我在浏览器中收到 401 错误,但我可以使用不记名令牌从 Postman 访问 API。
如果提供了不记名令牌,我希望能够使用它,否则会挑战用户凭据。
我的控制器用户[Authorize] 我目前没有在 GET 操作中使用任何验证。我让中间件做所有的验证。
【问题讨论】:
标签: web-applications asp.net-identity asp.net-core-webapi