Blazor Server + Identity: SigninManager.SigninAsync не сохраняет логин (cookie не установлен)C#

Место общения программистов C#
Ответить
Anonymous
 Blazor Server + Identity: SigninManager.SigninAsync не сохраняет логин (cookie не установлен)

Сообщение Anonymous »

Я строю приложение Blazor Server (.net 9, Identity + Entity Framework Core + Mudblazor). У меня есть пользовательская форма входа в систему, и я хочу аутентифицировать пользователя вручную, используя SignInManager .
Я использую этот метод для входа в систему:

Код: Выделить всё

private async Task RegoLogin()
{
isBusy = true;
LoginResultRego = true;

try
{
// Try to find the user by email or username
ApplicationUser user = RegoBenutzer.Contains('@')
? await UserManager.FindByEmailAsync(RegoBenutzer)
: await UserManager.FindByNameAsync(RegoBenutzer);

if (user == null)
{
Console.WriteLine("❌ User does not exist.");
LoginResultRego = false;
return;
}

// Step 1: Check if the password is valid (does NOT create authentication cookie)
var result = await SignInManager.CheckPasswordSignInAsync(user, RegoKennwort, lockoutOnFailure: false);

if (result.Succeeded)
{
// Step 2: Perform the actual sign-in (this creates the auth cookie)
await SignInManager.SignInAsync(user, isPersistent: false);

// Step 3: Optionally store user in shared state (if needed)
SharedDataService.LoggedInUser = user;

// Step 4: Conditional redirect
if (user.MustChangePassword)
{
Navigation.NavigateTo("/change-password", forceLoad: true);
}
else
{
Navigation.NavigateTo("/dashboard", forceLoad: true);
}
}
else
{
Console.WriteLine("❌ Invalid login attempt.");
Console.WriteLine($"🔎 Details: IsLockedOut={result.IsLockedOut}, IsNotAllowed={result.IsNotAllowed}, Requires2FA={result.RequiresTwoFactor}");
LoginResultRego = false;
}
}
catch (Exception ex)
{
Console.WriteLine($"❌ Exception occurred during login: {ex.Message}");
LoginResultRego = false;
}
finally
{
isBusy = false;
}
}
✅ CheckPassWordSignInasync () возвращает effered = true , поэтому учетные данные действительны. Страница. Похоже, что в браке не записано ни одно авто, то что я пробовал:
  • обеспечить useauthentication () и useauthorization () в правильном порядке в программе. RevalidatingIdentityAuthenticationStateProvider
  • Параметры cookie устанавливаются через ConfigureApplicationCookie , чтобы иметь/как путь входа в систему.
  • Проверено, что пользователь. PasswordSignInasync (...) вместо этого - та же проблема.
Вопросы
  • Почему не значит, что нет signasync (пользователь, iSpersistent: false) with? Специальное требование использования его внутри компонентов сервера Blazor? 9
  • Blazor Server (не веб -сборка)
  • Ядро структуры объекта с Postgresql
  • Identity: Addientity ()
Спасибо за помощь!>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ogin-cooki
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»