Настройка регистрации в .NET8 IdentityC#

Место общения программистов C#
Ответить
Anonymous
 Настройка регистрации в .NET8 Identity

Сообщение Anonymous »

Я пытаюсь изучить .NET8 и создаю свой первый API. В своем проекте я использую Identity.EntityFrameworkCore, чтобы иметь возможность обрабатывать данные, связанные с пользователем.
Я создал свой собственный класс User, чтобы добавить несколько свойств для пользователя, вот мой класс.

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

using Microsoft.AspNetCore.Identity;
using System.ComponentModel.DataAnnotations;

namespace Blog.Models.Entities
{
public class User : IdentityUser
{
[DataType(DataType.DateTime)]
public DateTime? BirthDate { get; set; }
public string? FirstName { get; set; }
public string? LastName { get; set; }
public byte[]? ProfilePicture { get; set; }
public virtual ICollection? blogs { get; set; }
}
}

Я выполнил необходимую настройку и получил доступ к конечным точкам по умолчанию /login, /register... и это прекрасно, но когда я пытаюсь зарегистрировать пользователя, я могу предоставить только адрес электронной почты и пароль в теле моего запроса, но я хочу иметь возможность предоставлять другие свойства, которые я создал в своем пользовательском классе пользователя, и для этого я создал свою конечную точку пользовательского реестра

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

[HttpPost("register")]
public async Task Register(RegisterUserDto input)
{
var user = new User()
{
FirstName = input.FirstName,
LastName = input.LastName,
BirthDate = input.BirthDate,
Email = input.Email,
UserName = input.UserName,
};
var result = await _userManager.CreateAsync(user, input.PasswordHash);
string message = string.Empty;
if (result.Succeeded)
return Ok("User created successfully");
return BadRequest("Error occured");
}
И я получил ожидаемый результат. Однако моя проблема в том, что теперь у меня есть две конечные точки регистра: одна, предоставленная Identity, и та, которую я создал. Могу удалить

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

builder.Services.AddIdentityCore()
.AddEntityFrameworkStores()
.AddApiEndpoints();
и

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

app.MapIdentityApi();
из Program.cs,
но это также позволит избавиться от других конечных точек, таких как /login, /refresh, /forgotPassword... которые я хочу сохранить.И поэтому мой вопрос: можно ли избавиться только от метода регистрации по умолчанию, сохранив при этом остальные?

Подробнее здесь: https://stackoverflow.com/questions/789 ... 8-identity
Ответить

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

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

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

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

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