Asp.net core 如何在ASP.NET Core Identity 3.1中为Cookie设置自定义令牌提供程序?

Asp.net core 如何在ASP.NET Core Identity 3.1中为Cookie设置自定义令牌提供程序?,asp.net-core,authentication,cookies,asp.net-identity,Asp.net Core,Authentication,Cookies,Asp.net Identity,tl;dr:有没有办法将自定义令牌提供者或类似的东西(例如jwt令牌具有issueSigningKey)设置为cookie 我有一个带有身份验证的.NETCore3.1后端。我在确认生成的电子邮件令牌时遇到问题。。“无效令牌”错误。从这个,所以我发现有可能是我的主机问题。我已经为我的应用程序共享了主机,并且我的应用程序经常被重新启动。我相信这是造成我问题的原因。所以,正如答案所建议的,我创建了自己的令牌提供者: services.AddIdentity<AppUser, AppRol

tl;dr:有没有办法将自定义
令牌提供者
或类似的东西(例如jwt令牌具有
issueSigningKey
)设置为cookie

我有一个带有身份验证的.NETCore3.1后端。我在确认生成的电子邮件令牌时遇到问题。。“无效令牌”错误。从这个,所以我发现有可能是我的主机问题。我已经为我的应用程序共享了主机,并且我的应用程序经常被重新启动。我相信这是造成我问题的原因。所以,正如答案所建议的,我创建了自己的
令牌提供者

   services.AddIdentity<AppUser, AppRole>()
           .AddEntityFrameworkStores<MyContext>()
           .AddDefaultTokenProviders()
           .AddTokenProvider<AesDataProtectorTokenProvider<AppUser>>(TokenOptions.DefaultProvider);
我发现
Identity
中的
SignInManager
默认情况下正在创建cookie。因此,我认为最好使用这个cookies,而不是保存在
localstorage
中的jwt令牌。所以我把饼干的过期时间设置为30天

services.ConfigureApplicationCookie(options =>
{
    // Cookie settings
    options.ExpireTimeSpan = TimeSpan.FromDays(30);
});
一切都很顺利。。直到我将我的应用程序托管到服务器。我相信当我的应用程序重新启动时,cookie验证失败,我从服务器上得到了401。所以…最后我的问题。。有没有办法将自定义
令牌提供程序
或类似的东西(例如jwt令牌具有
issueSigningKey
)设置为Cookie?

在ASP.NET Core Identity中没有用于自定义Cookie的现有API(类、方法)

您可以在不使用ASP.NET核心标识的情况下构建自己:

参考:

没有现有的API(类、方法)可供您在ASP.NET Core Identity中自定义Cookie

您可以在不使用ASP.NET核心标识的情况下构建自己:

参考:

services.ConfigureApplicationCookie(options =>
{
    // Cookie settings
    options.ExpireTimeSpan = TimeSpan.FromDays(30);
});