C# .Net Core MVC无法将会话存储到Redis
使用HttpContent.SignInAsysnc登录:C# .Net Core MVC无法将会话存储到Redis,c#,asp.net-core,session,redis,C#,Asp.net Core,Session,Redis,使用HttpContent.SignInAsysnc登录: var identity = new ClaimsIdentity("ABC"); identity.AddClaim(new Claim(ClaimTypes.Name, userId.ToString())); var principal = new ClaimsPrincipal(identity); await HttpContext.SignInAsync("ABC", principa
var identity = new ClaimsIdentity("ABC");
identity.AddClaim(new Claim(ClaimTypes.Name, userId.ToString()));
var principal = new ClaimsPrincipal(identity);
await HttpContext.SignInAsync("ABC", principal);
Startup.cs
添加分布式redis缓存:
public void ConfigureServices(IServiceCollection services)
{
services.Configure<KestrelServerOptions>(options => options.AllowSynchronousIO = true);
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDistributedRedisCache(options =>
{
options.Configuration = "127.0.0.1";
});
services.AddSession();
services.AddAuthentication("ABC")
.AddCookie("ABC", options =>
{
options.AccessDeniedPath = "/authorize/forbidden";
options.LoginPath = "/authorize/signin";
});
<more>
}
那么,会话是否有问题无法保存在Redis中?在Startup.cs文件中,尝试将Redis配置为使用
options.Configuration=“localhost:6379”
而不是127.0.0.1
,并且在控制器操作中,尝试使用HttpContext.Session.SetString(“name”,“Jignesh Trivedi”)代码>以在会话中保存值。
public void Configure(IApplicationBuilder app)
{
<more>
app.UseSession();
app.UseAuthentication();
app.UseAuthorization();
<more>
}
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>