我有一个使用表单身份验证的网络应用。
方案如下:
有没有办法利用这个302响应并为其添加额外的响应标头?
我特别感兴趣的是添加Expires:header。
答案 0 :(得分:0)
其中一种方法是编写自己的表单身份验证模块,但这可能太多了。
另一个(快速入侵)解决方案可能是使用global.asax(或自定义HTTP模块)来查看响应 - 您可以使用PreSendRequestContent等事件来查看当前响应是否为302并重定向到login.aspx并在这种情况下添加标题。
答案 1 :(得分:0)
解决方案是创建一个HttpModule并订阅EndRequest事件。
在FormsAuthentication模块尝试授权请求并决定将重定向返回到登录页面结果后,将调用它。
类似的东西:
public class ExpireRedirectsHttpModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.EndRequest += OneEndRequest;
}
private void OneEndRequest(object sender, EventArgs e)
{
var httpApplication = (HttpApplication)sender;
HttpContext ctx = httpApplication.Context;
if (ctx == null) return;
if (ctx.Response.StatusCode == (int)HttpStatusCode.Redirect)
{
ctx.Response.Cache.SetExpires(DateTime.UtcNow);
}
}
public void Dispose()
{
}
}