如何手动设置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 ...
随机推荐
- python中的正则表达式
-
Unity3D Shader入门指南(一)
动机 自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解.虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心 ...
-
《linux 内核全然剖析》 chapter 2 微型计算机组成结构
微型计算机组成结构 系统的基本组成: 软件是一种控制硬件操作和动作的指令流. 2.1 微型计算机的组成原理 当中CPU通过地址线,数据线,和控制信号线组成的内部总线与系统其它部分进行数据通信.地址线用 ...
-
《转》Java中HashMap详解
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实 ...
-
MyBatis,动态传入表名,字段名的解决办法
转载:http://luoyu-ds.iteye.com/blog/1517607 今天做项目,遇到的问题就是需求修改数据表的记录,而且字段名都不是固定的,也就是说是需要通过参数传入的, 本来这也不是 ...
-
↗☻【编写可维护的JavaScript #BOOK#】第4章 变量、函数和运算符
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
-
Wpf ListBox数据绑定实例1--绑定字典集合
1.使用ListBox绑定Dictionary字典数据 ListBox常用事件SelectionChanged private void bindListBox() { Dictionary<s ...
-
写给新手看的Flask+uwsgi+Nginx+Ubuntu部署教程
学习 Flask,写完一个 Flask 应用需要部署的时候,就想着折腾自己的服务器.根据搜索的教程照做,对于原理一知半解,磕磕碰碰,只要运行起来了,谢天谢地然后不再折腾了,到下一次还需要部署时,这样的 ...
-
Contains Duplicate,Contains Duplicate II,Contains Duplicate III
217. Contains Duplicate Given an array of integers, find if the array contains any duplicates. Your ...
-
jvm(三):对象
关于对象,我们需要面对的问题主要有对象的创建,对象在内存中的布局,对象的结构,对象的访问定位. 对象的创建 对象的创建过程如下图所示: 其主要步骤有:给对象分配内存,初始化对象,执行构造方法. 在对象 ...