服务器无法在发送 HTTP 标头之后修改 cookie 问题解决方法
当一个页面已经开始输出的时候,就不允许在操作 cookies了。
如果你在 this.Response.Write 之后操作cookies 就会抱错。
我之前是在 pageload中输入了 this.Response.Write 但是没有控制 postback 结果我提交登陆的时候
就先执行了 this.Response.Write 后写了cookies 就报了错。
所以,cookies 一定要在没有任何输出前进行,要不就报错。
我遇到这个问题,发现是这个原因,就和错误提示的 意思一样
页面标头发送了,也就是输出了页面信息了。
其他人的 :
问题描述:
在进行角色管理的时候,因为使用了updatepanel和在Login页面中设置了:
FormsAuthentication.SetAuthCookie(user.UserName, this.RememberMe.Checked);
出现了以下的错误:
[HttpException]: 服务器无法在发送 HTTP 标头之后修改 cookie。
在 System.Web.HttpCookieCollection.Add(HttpCookie cookie)
在 System.Web.Security.RoleManagerModule.OnLeave(Object source, EventArgs eventArgs)
在 System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
解决办法:
在web.config中把cacheRolesInCookie属性值设置成false就行了。
在官方论坛:http://forums.asp.net/p/1069056/1574188.aspx#1574188
有解释。