با سلام
نحوه استفاده از identity را در روش database first چگونه است؟اگه سایت مقاله مثالی هست ممنون میشم معرفی نمایید.
به عبارتی دیگه من دیتابیسم رو تو اسکیوال طراحی کردم حالا میخوام ثبت نام کاربر و ورود به سایت تعریف نقش اختصاص نقش به کاربران رو با identity پیاده سازی کنم .
با تشکر
کافیست که رشته اتصال در وب کانفیگ را که نامش DefaultConnection است مانند رشته اتصال خودتون تنظیم کنید
با اینکار جداول مربوطه روی بانک خودتون ساخته خواهد شد
با سلام خدمت استاد محترم
منم همین سؤال رو دارم.
این رشته رو به رشته خودم تغییر دادم.
جداول مورد نظر ساخته شد.
اما جدول user می خوام فقط فیلدهای خودم رو داشته باشه.
چند روزه هر چی می گردم متوجه نمی شم.
آیا پروژه ای رو می شناسید که با روش Database first عملیات identity رو انجام داده باشه و من ازش یاد بکیرم؟
با تشکر
متاسفانه نمیشناشم
استاد محترم من از دو connectionString مانند زیر استفاده می کنم:
<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=.;Initial Catalog=Test;Integrated Security=True" providerName="System.Data.SqlClient" /> <add name="TestEntities" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=Test;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionStrings>
اولی برای identity و دومی برای جداول خودم.
آیا درست می باشد؟
لطفا راهنمایی نمایید.
با تشکر
درسته
استاد میخوام در جدول Aspnetuser بعضی از فیلدها رو حذف کنم و فیلدهای خودم رو بزارم.
لطفا راهنمایی نمایید
با تشکر
میتونید وارد Model بشید و فیلدهایی که نمیخواهید حذف کنید
خوبی CodeFirst همینه با حذف فیلدها ستونها ساخته نمیشه
استاد محترم دو سؤال دارم:
1- بر طبق مقاله ای که در سایتتون هست من قسمت RegisterViewModel را با کدهای زیر جایگزین کردم:
[Required] [EmailAddress] [Display(Name = "Email")] public string Email { get; set; } [Required] [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] [DataType(DataType.Password)] [Display(Name = "Password")] public string Password { get; set; } [DataType(DataType.Password)] [Display(Name = "Confirm password")] [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] public string ConfirmPassword { get; set; } [Required] [DataType(DataType.Text)] [Display(Name = "نام ")] public string Name { get; set; } [Required] [DataType(DataType.Text)] [Display(Name = "دانشگاه ")] public string UniversityName { get; set; } [Required] [Display(Name = "شهر")] [DataType(DataType.Text)] public string City { get; set; } [Required] [DataType(DataType.PostalCode)] [Display(Name = "کد پستی")] public string PostalCode { get; set; } [Required] [DataType(DataType.MultilineText)] [Display(Name = "آدرس")] public string StreetAddress { get; set; } [Required] [DataType(DataType.Text)] [Display(Name = "کشور")] public string Country { get; set; }
همچنین در قسمت ApplicationUser نیز کدهای زیر را اضافه گردم:
public string UniversityName { get; set; } public string Name { get; set; } public string City { get; set; } public string PostalCode { get; set; } public string StreetAddress { get; set; } public string Country { get; set; }
اما دیتابیس AspNetUser شامل همان فیلدهای پیش فرض و فیلهایی که جدید اضافه شده می باشد. می خوام فقط این فیلدهای تعریف شده در قسمت ApplicationUser در جدول AspNetUser باشد. چه کار کنم؟
2- سؤال دوم این است که جداول MigrationHistory و AspNetUserClaim و AspNetUserLogins به چه درد می خورند؟
لطفا راهنمایی نمایید.
با تشکر
استاد محترم
یرای سفارشی سازی جدولهای AspUser و حذف فیلدهای اضافی و افزودن فیلدهای دیگر کد زیر رو در IdentityModel نوشم:
public class ApplicationUser : IdentityUser { public string UniversityName { get; set; } public string Name { get; set; } public string City { get; set; } public string PostalCode { get; set; } public string StreetAddress { get; set; } public string Country { get; set; } public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) { // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); // Add custom user claims here return userIdentity; } } public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false) { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { //تغییر نام پیش فرض جدول ها modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); base.OnModelCreating(modelBuilder); modelBuilder.Entity<ApplicationUser>().ToTable("Users"); modelBuilder.Entity<IdentityUser>().ToTable("Users"); modelBuilder.Entity<IdentityRole>().ToTable("Roles"); modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles"); modelBuilder.Entity<IdentityUserClaim>().ToTable("userclaim"); modelBuilder.Entity<IdentityUserLogin>().ToTable("userLogin"); //AspNetUserحذف کردن بعضی فیلدهای پیش فرض ار جدول modelBuilder.Entity<IdentityUser>().Ignore(c => c.AccessFailedCount) .Ignore(c => c.EmailConfirmed) .Ignore(c => c.LockoutEnabled) .Ignore(c => c.LockoutEndDateUtc) .Ignore(c => c.PhoneNumber) .Ignore(c => c.PhoneNumberConfirmed) .Ignore(c => c.TwoFactorEnabled); }
این کدها فعلا که درست جواب میدن
گذاشتم شاید کسی هم استفاده کنه
با تشکر
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)