【发布时间】:2017-06-26 06:47:45
【问题描述】:
我在调查可能由对我的应用程序 API 方法的 JavaScript 请求返回错误响应代码而导致的错误时遇到了 SuppressDefaultHostAuthentication,但它适用于 ASP.NET Web API 2。
我正在寻找 ASP.NET Core 的融合(MVC + Web API)世界中的等价物(如果存在)?
抑制默认主机身份验证
当主机的默认身份验证被禁止时,当前主体在进入 HttpServer 的第一个消息处理程序时设置为匿名。因此,主机执行的任何默认身份验证都将被忽略。 HttpServer 中剩余的管道,包括 IAuthenticationFilters,是身份验证的独占权限。
https://msdn.microsoft.com/en-us/library/dn314641(v=vs.118).aspx
虽然 MVC 模板使用基于 cookie 的身份验证机制,但 新的 SPA 模板更喜欢使用基于令牌的身份验证模型 通过 Authorization HTTP 标头显式传递(这更好 因为它避免了 CSRF 攻击)。这意味着默认 必须忽略来自主机的身份验证,因为身份验证 将针对除 cookie 之外的其他内容执行。网络 API 2 添加了一个忽略主机级别身份验证的功能,称为 抑制默认主机身份验证。这是一种扩展方法 添加消息处理程序的 HttpConfiguration。这样做的目的 消息处理程序是简单地(并明确地)分配一个匿名的 principal 到 RequestContext 的 Principal 属性。这样如果 cookie 中间件确实会处理传入的 cookie,此时 调用到达 Web API 调用者将被视为匿名。
【问题讨论】:
标签: asp.net asp.net-web-api asp.net-core-mvc asp.net-core-1.0 asp.net-core-webapi