دلیل خطای No Service for type 'UserManager' has been registered
برای Customize کردن جداول Identity در Asp.Net Core 7 من ابتدا یک کلاس برای نقش و یک کلاس برای یوزر ایجاد کردم
using System;
using Microsoft.AspNetCore.Identity;
namespace MyWeb.Models
{
public class ApplicationRole : IdentityRole
{
public string Description { get; set; }
}
}
using System;
using Microsoft.AspNetCore.Identity;
namespace MyWeb.Models
{
public class ApplicationUser : IdentityUser
{
public string CustomField { get; set; }
}
}
و سپس آن را در کلاس dbContext به شکل زیر تعریف کردم
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
و بعد از آن در Program نیز آن را به Identity اضافه کردم
//program class
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
builder.Services.AddIdentity<ApplicationUser, ApplicationRole>().AddEntityFrameworkStores<ApplicationDbContext>().AddDefaultTokenProviders();
...
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
رشته اتصال رو هم در appsettings.json مطابق کد زیر تنظیم کردم
{
"ConnectionStrings": {
"DefaultConnection": "Server=.;Database=MyWebDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
حال با اجرای سایت خطای زیر در مرورگر نمایش داده می شود.
توی کلاس Program.cs باید از میان افزار UseAuthentication هم استفاده کنید.
app.UseAuthentication();
app.UseAuthorization();
ممنون.
من این رو به برنامه اضافه و تست کردم اما باز هم همون خطا رو میده
پروژه شما رو دانلود کردم و تست کردم. در پوشه Shared یک پارشیال ویو به نام LoginPartial.cshtml وجود داره که سه خط کد زیر داخل اون هست.
@using Microsoft.AspNetCore.Identity
@inject SignInManager<IdentityUser> SignInManager
@inject UserManager<IdentityUser> UserManager
اشکال از این 3 خط کد هست. کلا بهتره محتویات این پارشیال ویو (که فکر کنم به طور پیش فرض وجود داشته در پروژه شما) رو پاک کنید.
ممنون آقای بحرانی فرد من این کار را انجام دادم و مشکل حل اما Login و Register در بالای صفحه حذف شد که من مجدد اون قسمتی که حذف کردم برگردوندم و به شکل زیر تغییر دادم
@using Microsoft.AspNetCore.Identity
@using MyWebApp.Models
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager
با این کار هم مشکل حل شد ام باز هم صفحه Login و Register کار نمیکنه
آیا راهی هست که این دو صفحه هم کار کنه یا باید مجدد این دو صفحه رو جدید بسازم؟
مشکل باز نشدن صفحه Login و Register با افزودن Default UI به AddIdentity مطابق کد زیر طور کامل حل شد.
builder.Services.AddIdentity<ApplicationUser, ApplicationRole>().AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders().AddDefaultUI();
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2