Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc asp.net mvc表单身份验证,无成员资格_Asp.net Mvc_Forms Authentication - Fatal编程技术网

Asp.net mvc asp.net mvc表单身份验证,无成员资格

Asp.net mvc asp.net mvc表单身份验证,无成员资格,asp.net-mvc,forms-authentication,Asp.net Mvc,Forms Authentication,我有以下场景:用户使用google帐户登录,然后我调用FormsAuthentication.SetAuthCookiename,true;。在我的web.config中,我有 <authentication mode="Forms"> <forms cookieless="UseCookies" name=".someName" slidingExpiration="true" timeout="10080"/ </authentication> 就是这样,没

我有以下场景:用户使用google帐户登录,然后我调用FormsAuthentication.SetAuthCookiename,true;。在我的web.config中,我有

<authentication mode="Forms">
<forms cookieless="UseCookies"  name=".someName" slidingExpiration="true" timeout="10080"/
</authentication>
就是这样,没有成员资格提供程序,没有dbo.aspnet_*表。这很好,但有时我不知道为什么即使用户不关闭浏览器并定期发送请求,他也会再次成为未经身份验证的用户。有人能解释为什么吗?
我应该怎么做才能使身份验证持久化?如果解决方案不涉及sql server,那就太好了,因为没有任何sql server。

建议我认为这是由于超时造成的,这意味着如果用户不为10080做任何事情,他将注销并自动删除cookies。timeout=“10080”以分钟为单位测量,这意味着我们这里有10080分钟的超时时间。当用户未经身份验证时,您是否可以检查cookie是否仍然存在。@Grunf我检查了,并在请求头中看到了这一点:cookie:\uu utma=。。。此时用户已经是非授权用户。当他被授权时,标题看起来像这样的Cookie:uu utma=。someName=,这让我相信他在第一个案子里没有送饼干。但为什么呢?如果AppPool重新启动,可能会发生这种情况。如果在站点级别的IIS中打开机器密钥设置,您将在“说明密钥”部分下看到一个在运行时自动生成的复选框。如果设置了chekcbox,则每次重新启动AppPool都会导致密钥更改。这意味着表单身份验证将无法删除所有现有的身份验证cookie。