У меня есть веб -сайт ASP.net Core MVC, который использует отдельные учетные записи с поставщиком идентификаторов Microsoft. Я использовал опцию каркаса Visual Studio, чтобы добавить учетные записи пользователей идентификации в свой проект, но я не расширил и не настраивал ни одной из веб -страниц поставщика идентификаторов. Я в основном использую его в качестве герметичного DLL, регистрации и изменения пароля и т. Д. Все работают, как и ожидалось. PrettyPrint-Override ">builder.Services.AddTransient();
builder.Services.Configure(builder.Configuration.GetSection("Smtp"));
и я реализовал «стандартный», полученный идентификатор class appuser :
public class AppUser : IdentityUser
{
public AppUser() { }
public AppUser(string userName) : base(userName) { }
public virtual ICollection Roles { get; set; }
public virtual ICollection Claims { get; set; }
}
Встроенная служба идентификации теперь отправляет электронное письмо с подтверждением регистрации со ссылкой, и я вижу нового пользователя в таблице Aspusers в бэкэнд с False в столбце EmaltConfirmed . Таким образом, они не могут войти в систему и рассматривать, что запись пользователя в таблице AspnetUsers по -прежнему показывает False в столбце Amailconfirmed .https://localhost:7091/Identity/Account ... RiOFVjKzFa ( truncated for brevity )
< /code>
Нажмите на предоставленную ссылку, просто доставляет вас на домашнюю страницу приложения < /p>
https://localhost:7091/?page=%2FIndex
Вопрос
Как я могу отладки и устранения неполадок, не раздаваясь на всех страницах идентификации веб -страниц и контроллеров? Я действительно хотел бы продолжать использовать часть учетной записи пользователя Identity в качестве герметичного пакета, а не расширять весь код на мой сайт. /Areas/identity/pages/account/registerconfirmation.cshtml.cs Файл:
Этот шаг необходим только тогда, когда account.registerConfirmation. Непревзойденный регистр, автоматически обнаруживает, когда iemailsender был реализован и зарегистрирован в контейнере для инъекции зависимости ». по запросу < /p>
{
public static bool isDevelopment = false;
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
string connectionString = builder.Configuration.GetConnectionString("LocalAuthConnection");
if (String.IsNullOrEmpty(connectionString))
{
throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
}
builder.Services.AddDbContext(options =>options.UseNpgsql(connectionString));
//Add and interface and a class for obtaining the connection string
ConnectionStringContainer connContainer = new ConnectionStringContainer(connectionString);
builder.Services.AddSingleton (connContainer);
builder.Services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true)
.AddRoles()
.AddEntityFrameworkStores();
builder.Services.AddTransient();
builder.Services.Configure(builder.Configuration.GetSection("Smtp"));
builder.Services.AddControllersWithViews();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
isDevelopment = true;
app.UseDeveloperExceptionPage();
}
else
{
isDevelopment = false;
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.MapControllerRoute(
name: "default",
pattern: "{controller=Manage}/{action=ManageUsers}/{id?}");
app.MapRazorPages();
app.Run();
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... -registrat
ASP.NET CORE MVC Identity не подтверждает адреса учетной записи электронной почты при регистрации ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение