InvalidCastException: невозможно привести объект типа «System.String» к типу «System.Guid». АСП.НЕТC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 InvalidCastException: невозможно привести объект типа «System.String» к типу «System.Guid». АСП.НЕТ

Сообщение Anonymous »

У меня есть веб-приложение, в котором практически все работает. Сегодня я хотел расширить свой IdentityUser с помощью ApplicationUser, чтобы у пользователя могли быть FirstName, LastName и ProfilePicture.
Проблема возникает здесь. Когда я регистрирую пользователя с помощью пользователя приложения, все работает, и пользователь регистрируется в базе данных. Но когда я пытаюсь получить доступ к учетной записи/управлению или учетной записи/входу, появляется эта ошибка:
Изображение

Я публикую свой класс applicationUser, свой логин и регистрацию, а также управляю представлением и cs.html
namespace OnlineShop.Data.Models
{
public class ApplicationUser : IdentityUser
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public string? ProfileImgUrl { get; set; }
}
}

ApplicationDbContext:
namespace OnlineShop.Data
{
public class ApplicationDbContext : IdentityDbContextclicking here.");

if (_userManager.Options.SignIn.RequireConfirmedAccount)
{
return RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl });
}
else
{
await _signInManager.SignInAsync(user, isPersistent: false);
return LocalRedirect(returnUrl);
}
}
foreach (var error in result.Errors)
{
ModelState.AddModelError(string.Empty, error.Description);
}
}

// If we got this far, something failed, redisplay form
return Page();
}

private ApplicationUser CreateUser()
{
try
{
return Activator.CreateInstance();
}
catch
{
throw new InvalidOperationException($"Can't create an instance of '{nameof(IdentityUser)}'. " +
$"Ensure that '{nameof(IdentityUser)}' is not an abstract class and has a parameterless constructor, or alternatively " +
$"override the register page in /Areas/Identity/Pages/Account/Register.cshtml");

}
}

private IUserEmailStore GetEmailStore()
{
if (!_userManager.SupportsUserEmail)
{
throw new NotSupportedException("The default UI requires a user store with email support.");
}
return (IUserEmailStore)_userStore;
}
}


Login.cshtml.cs
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
#nullable disable

namespace OnlineShop.Web.Areas.Identity.Pages.Account
{
public class LoginModel : PageModel
{
private readonly SignInManager _signInManager;
private readonly UserManager _userManager;
private readonly ILogger _logger;

public LoginModel(SignInManager signInManager, UserManager userManager, ILogger logger)
{
_signInManager = signInManager;
_userManager = userManager;
_logger = logger;
}

[BindProperty]
public InputModel Input { get; set; }

public IList ExternalLogins { get; set; }

public string ReturnUrl { get; set; }

[TempData]
public string ErrorMessage { get; set; }

public class InputModel
{
[Required]
[EmailAddress]
public string Email { get; set; }

[Required]
[DataType(DataType.Password)]
public string Password { get; set; }

[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}

public async Task OnGetAsync(string returnUrl = null)
{
if (!string.IsNullOrEmpty(ErrorMessage))
{
ModelState.AddModelError(string.Empty, ErrorMessage);
}

returnUrl ??= Url.Content("~/");

// Clear the existing external cookie to ensure a clean login process
await HttpContext.SignOutAsync(IdentityConstants.ExternalScheme);

ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();

ReturnUrl = returnUrl;
}

public async Task OnPostAsync(string returnUrl = null)
{
returnUrl ??= Url.Content("~/");

ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();

if (ModelState.IsValid)
{
// Log the attempted email to help with debugging
_logger.LogInformation("Attempting to sign in user with email: {Email}", Input.Email);

// Lookup user by email
var userEmail = Input.Email;
var user = await _userManager.FindByNameAsync(userEmail);
if (user == null)
{
_logger.LogWarning("User not found for email: {Email}", Input.Email);
}

// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, set lockoutOnFailure: true
var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: false);

if (result.Succeeded)
{
_logger.LogInformation("User logged in.");
return LocalRedirect(returnUrl);
}
if (result.RequiresTwoFactor)
{
return RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, RememberMe = Input.RememberMe });
}
if (result.IsLockedOut)
{
_logger.LogWarning("User account locked out.");
return RedirectToPage("./Lockout");
}
else
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return Page();
}
}

// If we got this far, something failed, redisplay form
return Page();
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... o-type-sys
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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