Asp.net会话交叉/混合
几周前,我们有一位客户与我们联系,说有时当他创建一个活动时,它会以别人的名字创建!
我们做了一些故障排除,找不到任何东西.下次遇到这些问题时,我们要求用户与我们联系.他确实与我们联系了,我们能够和他一起去打乒乓球,用自己的眼睛看待这个问题. 他不仅是活动,而且被认定为应用程序中的其他人.他可以访问其他人应该访问的所有内容.那是当我们意识到我们正在混合一个问题的时候. 一点关于我们的代码: BL.User currentUser = BL.User.Authenticate(txtUsername.Text,txtPassword.Text); if (currentUser != null) { this.Session["NumberOfLoginTried"] = "0"; FormsAuthentication.SetAuthCookie(currentUser.UserID.ToString(),chRememberMe.Checked); Response.Redirect(FormsAuthentication.GetRedirectUrl(currentUser.UserID.ToString(),false)); } 我们还使用以下代码段在我们的应用程序中获取登录用户ID(当前用户). public static int GetCurrentUserID() { int userID = -1; int.TryParse(HttpContext.Current.User.Identity.Name,out userID); return userID; } 是的,我们做了我们的家庭作业和谷歌搜索,看到以下两个环节: http://lionsden.co.il/codeden/?p=446 我们已经禁用了.aspx和.ascx文件的内核模式缓存和用户模式缓存,这仍然在发生. P.S-该应用程序在具有IIS 7.5的Windows 2008 R2上运行.而且我们没有使用无Cookie会话. 解决方法
我们刚刚遇到了一个非常相似的问题,这个问题随机发生,似乎是不可重复的.
问题原来是ASP.NET页面缓存机制 – 在我们的例子中,特别是<%@ OutputCache标签. 我们使用了一条线 在我们的情况下,改变这一行 并在相关页面的Page_Load事件中添加以下行: Response.CacheControl = "private"; Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d); Response.Cache.SetCacheability(HttpCacheability.NoCache); 似乎已经解决了我们的问题.希望这可以帮助别人遇到类似的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Hangfire在ASP.NET CORE中的简单实现
- asp.net-mvc-3 – 具有确认对话框的MVC3 Actionlink
- asp.net – Python / web scrape / aspx – 没有表格时人性
- asp.net-mvc – ASP.Net MVC 5带范围的Google身份验证
- asp.net-mvc – Cookie过期或会话超时太早
- asp.net – HTML电子邮件中的嵌入图像无法在手机上显示
- asp.net-mvc – MVC 4在局部视图中使用分页列表
- asp.net – 当.resx文件更改时,App域重新启动.有什么办法可
- asp.net – 在用户控件中关闭页面级缓存
- 如何在.NET MVC应用程序中包含社交媒体共享?
- asp.net – Jquery datepicker:验证日期mm/dd/y
- asp.net – ‘txtName’未声明 由于其保护等级可
- asp.net-mvc – 如何在jqueryui工具提示中显示jq
- asp.net-mvc – “继承”ASP.NET MVC网站从一个常
- asp.net – C#中的缓存对我来说是正确的方法吗?
- asp.net – 保护.net Web服务URL
- asp.net – Webmatrix 2:存储静态值
- 如何在ASP.NET 5和Visual Studio 2015 CTP中添加
- 资源-DotNet-站点:DotNet 站点列表
- 如何使用WebAPI没有ASP.NET MVC?