Form认证timeout无效问题

158 篇文章 3 订阅

web.config有如下设置:

    <authentication mode="Forms">
      <forms name=".GZFBCWeb" loginUrl="~/Admin/Auth/Login" timeout="1" defaultUrl="~/" cookieless="UseCookies" slidingExpiration="true" enableCrossAppRedirects="true" path="/"/>
    </authentication>

其中
timeout的单位是分钟,意即认证多少分钟后过期;
slidingExpiration=“true”,如果用户保持活跃,则重置timeout计时器,理论上,只要你永远活跃,则认证永不过期。

问题是,我登录之后,就此不动,过了1分钟后再去访问,仍旧没有退出,认证依然有效。

用浏览器调试,发觉cookie=.GZFBCWeb的过期时间为“Session”,意思是,这是一个会话cookie,只有浏览器关闭才失效。

为啥呢,timeout不起作用?

后来翻看代码,才知道是我代码的原因。登录成功后,没有采用默认的处理方式,而是自己生成了一个cookie,由于没有指定cookie的过期属性,造成该COOKIE是默认的会话生命周期。我原先代码是这样写的:

void Signin(LoginInfo sUT)
{//此函数在登录成功后调用
	System.Web.Security.FormsAuthenticationTicket tk = new FormsAuthenticationTicket(1,
			sUT.LoginName,
			DateTime.Now,
			DateTime.Now.AddMonths(1),
			true,
			"",
		   FormsAuthentication.FormsCookiePath
			);

	string key = FormsAuthentication.Encrypt(tk); //得到加密后的身份验证票字串 

	HttpCookie ck = new HttpCookie(FormsAuthentication.FormsCookieName, key);
	Response.Cookies.Add(ck);
}

又是票据又是加密,不明觉厉。
重点是最后两句,自己输出了一个cookie,使得web.config的设置完全失去效用。

后来改为:

void Signin(LoginInfo sUT)
{
	//注意最后一个参数一定要设置为true
	FormsAuthentication.SetAuthCookie(sUT.LoginName, true);
}

问题解决。简简单单,何必另起炉灶,故弄玄虚。

==============================
由上面的设置,我这个FORM认证依赖于COOKIE“.GZFBCWeb”,只要将该COOKIE删除,系统立马就退出了。
这里写图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Ant Design Vue中,form认证的rules部分是用来定义表单验证规则的。在代码中,可以通过$rules来访问这些规则。比如在data中定义了一个form对象,其中包含了一个名为verification的属性,它是表单验证规则的集合体名称。在verification中可以定义多个验证规则,每个规则都包含一个rules属性和一个trigger属性。rules属性是一个数组,用来定义具体的验证规则,比如必填、最大长度等。trigger属性指定触发验证的事件,比如blur表示失去焦点时触发验证。通过在表单的input输入框上使用v-decorator指令,可以将验证规则绑定到相应的输入框上,以实现表单的验证功能。所以,ant design vue form认证rules一部分是用来定义表单验证规则的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Ant Design Vue的Form表单验证](https://blog.csdn.net/Teddy____/article/details/127808663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue-admin-antd:基于Vue +蚂蚁设计+打字稿的管理系统](https://download.csdn.net/download/weixin_42109732/15729080)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值