3

我有一个在 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以允许两者?

提前感谢您的帮助!

4

0 回答 0