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");
}
}
我有一个 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");
}
}