Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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
C# 构建块用户功能:如何强制用户注销或终止其现有会话_C#_Asp.net Mvc_Asp.net Mvc 5_Asp.net Identity - Fatal编程技术网

C# 构建块用户功能:如何强制用户注销或终止其现有会话

C# 构建块用户功能:如何强制用户注销或终止其现有会话,c#,asp.net-mvc,asp.net-mvc-5,asp.net-identity,C#,Asp.net Mvc,Asp.net Mvc 5,Asp.net Identity,我在一个ASP.NETMVC网站上工作,这是一个电子商务网站。我正在使用ASP.NET标识 我添加了一个新功能,在用户创建垃圾邮件广告时阻止他们。我在user表中添加了一个IsBlocked标志,如果设置了该标志,该用户将无法再登录网站 但是,如果用户已经登录并拥有有效的会话/cookie,则他们可以继续使用该网站,直到注销或会话过期。当它们被阻止时,是否可以使其现有会话(如果有)无效?来自: 设置IsBlocked时,还可以通过以下方式更新用户的SecurityStamp: await use

我在一个ASP.NETMVC网站上工作,这是一个电子商务网站。我正在使用ASP.NET标识

我添加了一个新功能,在用户创建垃圾邮件广告时阻止他们。我在
user
表中添加了一个
IsBlocked
标志,如果设置了该标志,该用户将无法再登录网站

但是,如果用户已经登录并拥有有效的会话/cookie,则他们可以继续使用该网站,直到注销或会话过期。当它们被阻止时,是否可以使其现有会话(如果有)无效?

来自:

设置
IsBlocked
时,还可以通过以下方式更新用户的
SecurityStamp

await userManager.UpdateSecurityStampAsync(user);
因此,下次根据cookie产生的主体验证用户的SecurityStamp时,验证将失败,用户将被注销

您可以通过以下方式控制验证安全戳的间隔长度:

services.Configure<SecurityStampValidatorOptions>(options =>
{
    options.ValidationInterval = TimeSpan.FromMinutes(30); // 30 minutes is default
});
services.Configure(选项=>
{
options.ValidationInterval=TimeSpan.FromMinutes(30);//默认为30分钟
});
请务必在添加后调用它


您可以将
ValidationInterval
设置为零,但这将导致对用户发出的每个请求进行验证,并最终导致数据库请求。

非常感谢,我明天会尝试这种方法