ASP.NET 有 API 没有 Cookie 的 WebForms

ASP.NET WebForms with API without Cookies

我有一个 ASP.NET WebForms 应用程序,它也有 API 代码。这个项目不是基于 MVC 的,它只是 WebForms。

API 是一个单独的 class 与 WebMethods,它通过 Application_Start(文件 Global.asax.cs)

中的以下代码路由到
protected void Application_Start(object sender, EventArgs e)
{
        log4net.Config.XmlConfigurator.Configure();
        RouteTable.Routes.Add(new ServiceRoute("api/v1", new WebServiceHostFactory(), typeof(API.v1.Api)));
}

一切正常,一旦请求进入域。com/api/v1/...它将被路由到我的 Api class。但是我的应用程序总是以 "Set-Cookie" Header 响应,即使在 Api 路由上也是如此。我没有在 Api class.

中的任何地方使用 Session 上下文

我如何才能完全禁用 /api 中所有内容的 Cookie,同时在应用程序的根目录下 cookie 仍然照常运行?这可能吗?

将此添加到您的 global.asax 文件中。会自动绑定

如有必要,也删除任何其他 cookie。这已经在与您相同的环境中进行了测试,并证明可以正常工作。

protected void Application_PreSendRequestHeaders(Object source, EventArgs e)
{
    if (Request.Url.AbsolutePath.ToLowerInvariant().Contains("/api/v1"))
    {
        Response.Cookies.Remove("ASP.NET_SessionId");
    }
}