gpt4 book ai didi

c# - ASP.NET Core 3.0 身份不向我的浏览器添加任何身份验证数据

转载 作者:行者123 更新时间:2023-12-04 10:48:18 25 4
gpt4 key购买 nike

问题是我使用 ASP.NET Core Identity 来存储用户数据,但是当我登录时,它没有给我任何 cookie 或 session 。它只是告诉我我已经成功登录,但下次我想访问包含 [Authorize] 属性的网页时,我就是不能。它会将我重定向到登录页面。

if (ModelState.IsValid)
{
var user = await _userManager.FindByEmailAsync(model.Email);
if (user != null)
{
var result = await _signInManager.PasswordSignInAsync(user, model.Password, true, false);
if (result.Succeeded)
{
if (ReturnUrl != null)
{
return Redirect(ReturnUrl);
}

if (!string.IsNullOrEmpty(model.AppId))
{
return RedirectToAction(nameof(Authorize), new AuthorizeModel { AppId = model.AppId, RedirectUri = model.RedirectUri, State = model.State });
}
else
{
return Ok("You have successfully logged in");
}
...... More code

Startup.cs

services.AddDbContext<PassportDbContext>(options =>
{
options.UseSqlite(Configuration.GetConnectionString("DbConnection"));
});

services.AddIdentity<OAUser, IdentityRole>()
.AddEntityFrameworkStores<PassportDbContext>()
.AddDefaultTokenProviders();

-----------------------------------------------------

app.UseHttpsRedirection();
app.UseStaticFiles();
// app.UseCookiePolicy();

app.UseRouting();

app.UseAuthentication();
app.UseAuthorization();

Image: The cookies after I sign in

这意味着该应用程序不会向我提供任何我已登录的凭据。

最佳答案

.Net core 2.1 或更高版本内置支持 GDPR(通用数据保护条例)。

并且在您接受 cookie 之前,cookie 不会在浏览器中设置。

添加以下代码以忽略 GDPR

services.Configure<CookiePolicyOptions>(options =>
{
options.ConsentCookie.IsEssential = true;
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
 app.UseCookiePolicy();

关于c# - ASP.NET Core 3.0 身份不向我的浏览器添加任何身份验证数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59598352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com