我有OnActionExecuting
ActionFilter
其中我已檢查用戶會話是否已過期,並且在會話過期的情況下,用戶必須重定向到登錄頁面。服務器在發送http頭之後無法設置狀態
CompressFilterAttribute.cs文件具有代碼,如下所示:
public override void OnActionExecuting(ActionExecutingContext FilterContext)
{
if (((((System.Web.Mvc.ControllerContext)(FilterContext)).HttpContext).Request).IsAuthenticated)
GZipEncodePage(); //Function to check Session Expiration Time
var action = (string)FilterContext.RouteData.Values["action"];
if (!FilterContext.HttpContext.User.Identity.IsAuthenticated &&
action != "Index" &&
action != "FindStoreNameByText" &&
action.ToLower() != "sessiontimeout" &&
action.ToLower() != "logout")
{
string UrlSucesso = "/Home";
string UrlRedirecionar = string.Format("?ReturnUrl={0}", UrlSucesso);
string UrlLogin = FormsAuthentication.LoginUrl + UrlRedirecionar;
FilterContext.HttpContext.Response.Redirect(UrlSucesso, true);
}
}
CustomErrorHandleAttribute.cs文件具有代碼,如下所示:
public override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
// Rest logic
}
在CustomErrorHandleAttribute.cs文件我收到錯誤 - >服務器無法設置狀態後http頭hav e已發送
請幫我。
可能重複[服務器無法設置狀態後HTTP頭已發送IIS7.5](http://stackoverflow.com/questions/2383169/server-cannot-set-status-after-http-headers-have-been-sent-iis7-5) – drzaus