自己实现FormsAuthentication.SetAuthCookie方法,怎样在ASP.NET服务端代码中删除客户端Cookie
如何手动设置AuthCookie
ASP.NET中实现可以自己实现FormsAuthentication.SetAuthCookie方法,控制更为灵活
/// <summary>
/// 存用户信息到cookie
/// </summary>
/// <param name="userName"></param>
/// <param name="isPersistent">cookie是否是持久的</param>
protected static void LoginSystem(string userName, bool isPersistent)
{
DateTime issueDateTime=DateTime.Now;
DateTime expiredDateTime=issueDateTime.AddMinutes(); FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(,
userName,
issueDateTime,
expiredDateTime,
isPersistent,
userName);
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
System.Web.HttpCookie authCookie = new System.Web.HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); if (isPersistent)
{
authCookie.Expires = expiredDateTime;
} System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);
}
我们知道默认情况下Forms认证的Cookie名称是".ASPXAUTH",其实可以在ASP.NET项目的Web.config文件中自定义这个Cookie的名称,方法就是设置forms节点的name属性,如下所示
<authentication mode="Forms">
<forms name="SSOServiceAuth">
<!--设置站点Forms认证Cookie的名称为SSOServiceAuth-->
</forms>
</authentication>
如何删除客户端浏览器上的Cookie
这里顺便说一下ASP.NET删除Cookie的方法,很多朋友在ASP.NET中向客户端浏览器添加了Cookie后,却不知道怎么在ASP.NET服务器端删除Cookie,大家只要记住一点不管是存储在客户端硬盘上的持久化Cookie还是存储于客户端内存中的非持久化Cookie,只要Cookie的过期时间(Cookie.Expires)小于或等于当前客户端操作系统的时间,Cookie马上就会被客户端浏览器删除掉,所以我们只需要在ASP.NET服务端设置你要删除的Cookie的过期时间(Cookie.Expires)小于客户端操作系统的当前时间就行了,为了保险起见我们可以设置要删除Cookie的过期时间(Cookie.Expires)为DateTime.MinValue.AddSeconds(1),这样肯定是小于客户端操作系统时间的,Cookie会被客户端浏览器立刻删除掉。
HttpCookie abandonCookie = Request.Cookies["MyCookie"];//获取要删除的Cookie
abandonCookie.Expires = DateTime.MinValue.AddSeconds();//设置要删除的Cookie的过期时间(Expires)为DateTime.MinValue加1秒,这样该Cookie被放入Response发送到客户端浏览器后,肯定小于客户端的操作系统时间,所以会被客户端浏览器立刻删除掉 Response.Cookies.Add(abandonCookie);//将设置好过期时间(Expires)的Cookie放入Response发送回客户端浏览器
自己实现FormsAuthentication.SetAuthCookie方法,怎样在ASP.NET服务端代码中删除客户端Cookie的更多相关文章
- FormsAuthentication.SetAuthCookie 方法登录
FormsAuthentication.SetAuthCookie 方法,登录的原理. FormsAuthentication.SetAuthCookie 方法登录的过期时间. 登录相关阅读 asp. ...
- android如何与asp.net服务端共享session
近期需要实现一个功能,就是需要通过发送短信进行注册,现在想把短信验证码放到服务器的session值中,当客户端收到短信并提交短信码时由asp.net服务端进行判断,那么如何共享这个session那么需 ...
- Asp.Net_ 服务端向客户端写JavaScript脚本
在Asp.net 服务端处理脚本,一般都用 ClientScriptManager ,即web窗体服务端的this.ClientScript.该对象比较常用的方法: 1.RegisterArrayDe ...
- 在ASP.NET Core 2.x中获取客户端IP地址
一.前言 大家也知道服务端请求时我们获取的IP地址是包含在请求头中,因此这也大大便利了IP的获取. 在ASP.NET中,可以通过以下方式获取客户端的IP地址. HttpContext.Current. ...
- 如何通过JavaScript构建Asp.net服务端控件
摘要 虽然ASP.NET的服务器控件一直被大家所诟病,但是用户控件(ACSX)在某些场景下还是非常有用的. 在一些极特珠的情况下,我们会使用JavaScript动态的构建页面中的控件,但假设遇到了我要 ...
- ASP.NET 服务端接收Multipart/form-data文件
在网络编程过程中需要向服务器上传文件. Multipart/form-data是上传文件的一种方式. /// <summary> /// 上传工程文件 /// </summary&g ...
- FormsAuthentication.SetAuthCookie
这两天在研究 Forms 进行用户验证, 它本身没有什么上msdn上查一下就知道怎么个搞法了! 不过我在测试的时候发现也会产生 了一些疑问! 1. 什么我在web.config 的 authentic ...
- ios中mvc的FormsAuthentication.SetAuthCookie(cookieUserName, false)失败
如果楼主使用.net开发,要注意FormsAuthentication.SetAuthCookie 方法的使用会导致ios出现该问题.因为这个方法在ios设备上是把票据加入到url中,导致url和你的 ...
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
常量,字段,构造方法 常量 1.什么是常量 常量是值从不变化的符号,在编译之前值就必须确定.编译后,常量值会保存到程序集元数据中.所以,常量必须是编译器识别的基元类型的常量,如:Boolean ...
随机推荐
- 判断是否是 首次 进入app,,以及Xcode7之后前导页的设置
我的解决方案:... 1.在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:”方法, 添加以下代码: /** * 前导 ...
- mac开启服务命令
开启mysql mysql.server start 开启nginx sudo nginx 重启nginx sudo nginx -s reload 开启apach ...
- line-block代替float布局;
line-block代替float布局: 我们先看看float的一些特性(特征) 当我们改变浏览器的大小会出现这样的效果: 或则这样: 有时候,我们希望,以第一排最高的元素为换行基准时,我们就可以使用 ...
- 用MFC时,如果程序崩溃,检查内存,然后注意GDI数量,在任务管理器里选项-查看列-GDI数量
用MFC时,如果程序崩溃,检查内存,然后注意GDI数量,在任务管理器里选项-查看列-GDI数量
- table_横向合并_纵向合并
colspan是横向合并; rowspan是纵向合并; <caption></caption>表格标题(自动居中)
- day06-java-(方法,猜字符小游戏)
day05-java-(方法,猜字符小游戏) 1.方法: 1)用于封装一段特定的逻辑功能 2)方法应尽可能的独立,只干一件事 3)方法可以被反复的调用多次 4)避免代码重复,有利于代码的维护, ...
- js引入img标签和图片
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MVC部署 - 错误集锦
一.MVC部署后直接显示文件列表,路由未生效,效果如下: 处理方法为:Web.Config修改一下配置: <system.webServer> <validation validat ...
- [转载]Oracle修改表空间大小
Oracle修改表空间大小 使用Oracle10g建立数据库后,向数据库中导入了部分数据,第二天继续向数据库中导入数据表时发生错误: 查了很多资料发现原来是Oracle表空间限制,导致无法继续导入数据 ...
- SHA-2 Certificate Signing Request
To request an SSL certificate is now a SHA-2 Certificate Signing Request (CSR) is required. Using th ...