WebApi.Owin中的SuppressDefaultHostAuthentication还禁止webapi之外的身份验证

Pou*_*sen 17 c# authentication asp.net-web-api owin

我遇到了一个解决方案的问题,我使用Visual Studio SPA模板中的部件在WebApi中使用Oauth身份验证进行帐户控制.

  app.UseOAuthBearerTokens(OAuthOptions);
Run Code Online (Sandbox Code Playgroud)

然后我在owin webapi注册中正在做

config.SuppressDefaultHostAuthentication(); 
Run Code Online (Sandbox Code Playgroud)

但这也会阻止webapi环境之外的默认cookie身份验证.这是意图吗?如果是这样,我如何设置WebApi来抑制cookie身份验证,但它仍然在其他请求的环境中活动?

Pou*_*sen 31

这似乎是一个很好的做法,特别是当您在同一个IIS目录中混合使用OWIN托管的应用程序和常规应用程序时,使用app.Map设置WebApi.

    public void Configuration(IAppBuilder app)
    {
        var configuration = WebApiConfiguration.HttpConfiguration;
        app.Map("/api", inner =>
        {
            inner.UseWebApi(configuration);
        });
    }
Run Code Online (Sandbox Code Playgroud)

我的所有控制器都配置了"api"前缀路由,我只是将其移动到地图功能.现在webapi正在运行隔离,它与我的应用程序的其余部分一起运行.感谢@PinpointTownes将我指向这个方向.

  • 包标识符是"Microsoft.AspNet.WebApi.Owin" (5认同)
  • WebApiConfiguration无处可寻.我正在使用MVC 5并安装了Microsoft.AspNet.WebApi.Owin 5.2.3. (5认同)
  • 确保安装nugget pkg Microsoft ASP.Net Web API 2.2 OWIN.它安装了一切,但...... (2认同)