我有一个在 IIS 下运行的 asp.net Web API 服务器,到目前为止,它一直使用 Windows 身份验证,因为它只有在同一个域上运行的其他服务与之相关。
所以,在我的 web.config 我有以下设置......
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
<authentication mode="Windows" />
</system.web>
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
</security>
....
有了这个,我可以在同一个域上使用浏览器(或服务)并访问我的服务。
现在我们要允许移动应用程序也可以连接。我们将使用基于此的基于令牌的方案,到目前为止,要使用它,我需要关闭我的 Windows 身份验证web.config
才能使用它。如果我像上面那样留在 Windows 配置中,我什至没有得到任何 Owin 中间,当我调用方法(或自定义过滤器)时,例如,se Postman 调用没有设置 Windows 身份验证的路由。
所以我的问题是
- 如何允许任一身份验证,以便即使是浏览器(在同一域上)仍然可以调用路由并进行身份验证(通过协商),而且还允许其他客户端使用基于令牌的方案?另外(非常重要)我如何配置它
web.config
以允许两者?
提前感谢您的帮助!