C# Aspnet身份安全戳验证始终返回false

C# Aspnet身份安全戳验证始终返回false,c#,asp.net-core,asp.net-identity,asp.net-core-2.0,asp.net-core-identity,C#,Asp.net Core,Asp.net Identity,Asp.net Core 2.0,Asp.net Core Identity,我试图在一个单页web应用程序中使用Aspnet标识,该应用程序使用web api与服务器进行通信。我正在尝试配置安全戳验证,以便在用户从不同的计算机登录时注销他们。我的配置如下- Startup.cs public void配置服务(IServiceCollection服务) { ..... 服务.额外性() .AddDefaultTokenProviders(); 配置(选项=> { options.ValidationInterval=TimeSpan.FromSeconds(10); }

我试图在一个单页web应用程序中使用Aspnet标识,该应用程序使用web api与服务器进行通信。我正在尝试配置安全戳验证,以便在用户从不同的计算机登录时注销他们。我的配置如下-

Startup.cs
public void配置服务(IServiceCollection服务)
{
.....
服务.额外性()
.AddDefaultTokenProviders();
配置(选项=>
{
options.ValidationInterval=TimeSpan.FromSeconds(10);
});
services.AddAuthentication().services
.ConfigureApplicationOkie(选项=>
{
options.Cookie.Name=“.appdomain”;
options.Cookie.HttpOnly=true;
options.SlidingExpiration=true;
options.Events.OnRedirectToAccessDenied=上下文=>{
context.Response.StatusCode=(int)HttpStatusCode.probled;
返回Task.CompletedTask;
};
options.Events.OnRedirectToLogin=上下文=>{
context.Response.StatusCode=(int)HttpStatusCode.Unauthorized;
返回Task.CompletedTask;
};
});
...
}
公共无效配置(IApplicationBuilder应用程序,IHostingEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebpackDevMiddleware(新的WebpackDevMiddlewareOptions
{
HotModuleReplacement=true
});
}
其他的
{
app.UseExceptionHandler(“/Home/Error”);
}
app.UseStaticFiles();
app.UseAuthentication();
app.UseMvc(路由=>
{
routes.MapRoute(
名称:“默认”,
模板:“{controller=Home}/{action=Index}/{id?}”);
routes.MapSpaFallbackRoute(
名称:“水疗后援”,
默认值:新建{controller=“Home”,action=“Index”});
});
}
和我的登录方法

[HttpPost]
[Route("Login")]
[AllowAnonymous]
public async Task<JsonRecord> Login([FromBody] Login login)
{
    ApplicationUser user = await _userManager.FindByIdAsync(login.Username);
    if (user != null)
    {
        var success = _directoryService.ValidateUser(login.Username, login.Password);
        if (success)
        {
            await _userManager.UpdateSecurityStampAsync(user);
            await _signInManager.SignInAsync(user, false);
            return WrapJsonRecord(true, null, user);
        }
    }
    return WrapJsonRecord(false, "Username/password invalid");
}
[HttpPost]
[路线(“登录”)]
[异名]
公共异步任务登录([FromBody]登录)
{
ApplicationUser=await\u userManager.FindByIdAsync(login.Username);
如果(用户!=null)
{
var success=\u directoryService.ValidateUser(login.Username,login.Password);
如果(成功)
{
wait_userManager.UpdateSecurityStampAsync(用户);
wait _signInManager.SignInAsync(用户,false);
返回WrapJsonRecord(true、null、user);
}
}
返回WrapJsonRecord(false,“用户名/密码无效”);
}
然而,10秒后的任何请求都会得到401返回,即使用户没有从其他地方登录

我正在使用自定义的UserStore和数据库,目标是.NETFramework 4.6.2


如果有人能说出我做错了什么,那将是非常有帮助的。

也许可以深入了解和/或获得一些额外的见解。您还实现了吗?您可能需要使用SignOut/AuthenticationCookie刷新服务器上的身份验证信息
[HttpPost]
[Route("Login")]
[AllowAnonymous]
public async Task<JsonRecord> Login([FromBody] Login login)
{
    ApplicationUser user = await _userManager.FindByIdAsync(login.Username);
    if (user != null)
    {
        var success = _directoryService.ValidateUser(login.Username, login.Password);
        if (success)
        {
            await _userManager.UpdateSecurityStampAsync(user);
            await _signInManager.SignInAsync(user, false);
            return WrapJsonRecord(true, null, user);
        }
    }
    return WrapJsonRecord(false, "Username/password invalid");
}