我已经看到了几种使用Identity在Web API中设置外部提供程序支持 ASP.NET 但是它们都依赖于cookie,该cookie是在用户成功获得外部提供程序授权后设置的(称为"AspNet.External"),然后必须将其转发到Web API本身的令牌端点。
有没有办法规避这种情况,并在不需要使用 cookie 的情况下通过 ASP.NET Web API 使用外部身份验证?出现这种担忧的原因是,我想在我的移动应用程序中集成此身份验证,但用户可以随时禁用 cookie,从而使我的应用程序无法使用。
使用 OAuth2 怎么样?
- 使用 https://www.nuget.org/packages/Microsoft.Owin.Security.OAuth/构建 oauth2 服务器 ,
- 将服务器 Web API 应用设置为资源服务器,并启用 OAuth 持有者身份验证,该身份验证使用身份验证标头,而不是 cookie。
- 从 oauth2 服务器获取access_token后,为客户端请求设置身份验证标头。
您可以在此处查看代码:
https://github.com/beginor/owin-samples