C# 检查客户端Cookie是否启用
发现 System.Web.HttpBrowserCapabilities 类有个属性 Cookies,以为这个属性是侦查目标浏览器是否启用了Cookie的,结果一试才知道根本不是那么回事。上网搜索了一下,发现犯这个错误的人竟不在少数。无奈,既然没有现成的方法可用,那就自己写吧。思路很简单,试图写入一个Cookie,如果不成功就认为客户端禁用了Cookie。代码很简单,如下:
public partial class Login : System.Web.UI.Page {
private const string COOKIE_TEST_KEY = "tce_84kfi50c";
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
// 写入一个Cookie,以测试浏览器是否支持
Utility.WebUtility.WriteToCookie(COOKIE_TEST_KEY, "True");
}
}
protected void btnLogin_Click(object sender, EventArgs e) {
// 用户单击“登录”按钮时检查Cookie是否可用
if (string.IsNullOrEmpty(Utility.WebUtility.GetCookie(COOKIE_TEST_KEY))) {
// 已确定Cookie被禁用,跳转到通知页面
Core.Url.Location.RedirectTo(Core.Url.Dialogs.CookieDisabled, null);
}
}
}
private const string COOKIE_TEST_KEY = "tce_84kfi50c";
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
// 写入一个Cookie,以测试浏览器是否支持
Utility.WebUtility.WriteToCookie(COOKIE_TEST_KEY, "True");
}
}
protected void btnLogin_Click(object sender, EventArgs e) {
// 用户单击“登录”按钮时检查Cookie是否可用
if (string.IsNullOrEmpty(Utility.WebUtility.GetCookie(COOKIE_TEST_KEY))) {
// 已确定Cookie被禁用,跳转到通知页面
Core.Url.Location.RedirectTo(Core.Url.Dialogs.CookieDisabled, null);
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?