1.网站出现form认证不定时认证失败。登陆过后 每隔一会儿就需要重新登陆。首先检查的是form身份认证票据设置的时间(正常) 然后检查加密后的身份认证信息写入的cookie的失效时间(正常)

2.这个时候的想法是服务器是否加了一层代理。导致代理向服务器发送身份认证cookie信息失败,或者是服务器返回身份认证信息cookie  经过代理转发给客户端的时候代理经过包装。第二次发向代理 代理认为失效了 不向上层转发(host内网 排除)

3.在asp.net 事件管道的begin_resquest  打印requset 封装的cookie信息(存在)  在身份认证信息事件管道(第二个事件管道)打印(无效)

4.这个时候发现是asp.net框架对身份认证cookie认证失败。。(票据有效时间过了 排除)

5.了解身份认证原理

登陆时:

1. 检查用户提交的登录名和密码是否正确。
         2. 根据登录名创建一个FormsAuthenticationTicket对象。
         3. 调用FormsAuthentication.Encrypt()加密。(每次程序启动都会随机生成一个加密字符串。根据这个加密字符串加密和解密)
         4. 根据加密结果创建登录Cookie,并写入Response。

每次身份认证:

1. FormsAuthenticationModule尝试读取登录Cookie。
         2. 从Cookie中解析出FormsAuthenticationTicket对象。过期的对象将被忽略。(解析是通过 登录时的加密字符串进行解析)
         3. 根据FormsAuthenticationTicket对象构造FormsIdentity对象并设置HttpContext.User
         4. UrlAuthorizationModule执行授权检查。

6.发现iis的web程序  处理的进程数改成了5个进程

分析:进程之间数据是不能共享的。那么每个进程生成的随机加密字符串都不一样。假如有进程a 和b2个进程 登陆是进程a处理 ,其他请求是进程b处理 通过b的加密字符串解析a的加密字符串加密的身份认证信息(失败) 导致登陆失败

解决 配置web的加密字符串 不使用随机

asp.net form身份认证不定时认证失败的问题 排查的更多相关文章

  1. ASP.NET Form身份验证方式详解

    注:不会涉及ASP.NET的登录系列控件以及membership的相关话题, 我只想用比较原始的方式来说明在ASP.NET中是如何实现身份认证的过程.   ASP.NET身份认证基础 在开始今天的博客 ...

  2. asp.net 身份验证-Form 身份验证

    一. .net身份验证简介 1.身份验证就是检测用户是否登录及所访问的资源是否有权限.当我们在访问一个受保护网络资源时,往往需要输入用户名.密码信息,或通过其他证书.第三方身份验证等方式.验证(Aut ...

  3. 细说ASP.NET Forms身份认证

    阅读目录 开始 ASP.NET身份认证基础 ASP.NET身份认证过程 如何实现登录与注销 保护受限制的页面 登录页不能正常显示的问题 认识Forms身份认证 理解Forms身份认证 实现自定义的身份 ...

  4. 简单的ASP.NET Forms身份认证

    读了几篇牛人的此方面的文章,自己也动手做了一下,就想有必要总结一下.当然我的文章质量自然不能与人家相比,只是写给从没有接触过这个知识点的朋友. 网站的身份认证我以前只知道session,偶然发现一些牛 ...

  5. 【转】权限管理学习 一、ASP.NET Forms身份认证

    [转]权限管理学习 一.ASP.NET Forms身份认证 说明:本文示例使用的VS2017和MVC5. 系统无论大小.牛逼或屌丝,一般都离不开注册.登录.那么接下来我们就来分析下用户身份认证. 简单 ...

  6. ASP.NET Forms身份认证详解

    ASP.NET身份认证基础 在开始今天的内容之前,我想有二个最基础的问题首先要明确: 1. 如何判断当前请求是一个已登录用户发起的? 2. 如何获取当前登录用户的登录名? 在标准的ASP.NET身份认 ...

  7. 细说ASP.NET Forms身份认证 别人写的不过很透彻就转来了以后用时再看

    阅读目录 开始 ASP.NET身份认证基础 ASP.NET身份认证过程 如何实现登录与注销 保护受限制的页面 登录页不能正常显示的问题 认识Forms身份认证 理解Forms身份认证 实现自定义的身份 ...

  8. IE11下ASP.NET Forms身份认证无法保存Cookie的问题

    IE11下ASP.NET Forms身份认证无法保存Cookie的问题 折腾了三四天,今天才找到资料,解决了. 以下会转贴,还没来得及深究,先放着,有空再学习下. ASP.NET中使用Forms身份认 ...

  9. 关于Asp.Net Forms身份认证

    Asp.Net管道式的构建个我们提供了通过IHttpMoudle来订阅管线事件来达到干预HTTP请求的目的,Asp.Net的身份认证正是通过此种方式来对请求来执行身份认证的,这篇文章仅仅谈论Forms ...

随机推荐

  1. databtables 设置(显示)行号

    var table = $('#priceStrategtyTable').DataTable({         "rowCallback": function( row, da ...

  2. Redis 键(key)相关的命令及其它命令的查看地址

    Redis 键(key) Redis 键命令用于管理 redis 的键. 语法 Redis 键命令的基本语法如下: redis 127.0.0.1:6379> COMMAND KEY_NAME ...

  3. Ubuntu1404安装gogs过程

    一.Gogs介绍 Gogs (Go Git Service) 是一款极易搭建的自助 Git 服务. Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使 ...

  4. Symantec Backup Exec 2012 Agent for Linux 卸载

    本文介绍一下如何卸载Symantec Backup Exec 2012 Agent for Linx.首先我们来看看Symantec_Backup_Exec2012管理员手册的文档介绍: 卸载 Age ...

  5. CentOS 6编译安装lamp,并分别安装event模块方式和FPM方式的PHP

    任务目标: 编译安装LAMP 要求(1) 安装一个模块化的PHP 要求(2) 安装一个FPM的PHP 注意PHP需要最后一个安装,因为需要前两者的支持. 所以这里的安装次序为 1.httpd 2.Ma ...

  6. CentOS7 虚拟机搭建、初始设置、简单使用

    注:虚拟机安装的系统是CentOS7 1.网络设置 网络的设置主要是为了让虚拟机和物理机能够相互ping通,这样就可以用XShell之类的工具操控,也可以上网 见另一篇 CentOS7网络配置 2.物 ...

  7. 带你一步步的了解“C#事件”机制

    是什么 本文讨论类型中定义的最后一种成员:事件 定义了时间成员的类型允许类型通知其他对象发生了特定的事情. 具体的说,定义了时间成员的类型能提供以下功能: 方法能登记它对事件的关注 方法能注销它对事件 ...

  8. commons-math使用

    apache commons-math提供了一些常用的数学运算,包括初等数学.高等数学.线性代数.数理统计等方面的.猛击下面的链接查看其相关使用方法 Commons Math学习笔记 http://w ...

  9. 64位的Ubuntu系统上使用汇编nasm和C语言

    64位的Ubuntu系统上使用汇编nasm和C语言 $ nasm -f elf foo.asm -o foo.o$ gcc -c bar.c -o bar.o$ ld -s  foo.o bar.o ...

  10. git 设置代理服务器

    git可以通过以下命令设置代理服务器 git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:proxypo ...