نحوه سفارشی کردن Identity در MVC

یکشنبه 22 آذر 1394

Identity آخرین امکان در سیستم عضویتASP.net است. که در آن فرم های احراز هویت و یک دیتابیس برای نام کاربری ، کلمه عبور ، اطلاعات پروفایل و ... درگیر هستند. یک سیستم عضویت مدرن باید مبتنی بر تغییر مسیر بر اساس ورود به سایت به بخش های مختلف دیگر باشد.

نحوه سفارشی کردن Identity در MVC

آموزش تصویری نصب و استفاده از Asp.Net Identity 2

Identity   آخرین امکان در سیستم عضویتASP.net  است. که در آن فرم های احراز هویت و یک دیتابیس برای نام کاربری ، کلمه عبور ، اطلاعات پروفایل و ... درگیر هستند. یک سیستم عضویت مدرن باید مبتنی بر تغییر مسیر بر اساس ورود به سایت به بخش های مختلف دیگر باشد.  ASP.Net Identity می تواند برای هر نوع Solution با سفارشی کردن آن با توجه به نیازها پیاده سازی شود.

برای سفارشی کردن  Identity  در ASP.net   باید به درک عمیقی از Code behind  برسیم. یک راه ساده برای سفارشی کردن Identity را قدم به قدم بررسی خواهیم کرد.

ابتدا یک پروزه  MVC  ایجاد کنید.

بعد از ایجاد پروژه ، به پوشه  Model رفته و سپس کلاس  IdentityModel.cs را باز کنید. ویژگی های زیر را در  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; }  

 

اکنون به  AccountViewModel.cs  رفته و کدهای زیر را در قسمت  RegisterViewModel() قرار دهید.

[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; }
    }

به کلاس  AccountController.csرفته و کدهای زیر را در RegisterViewModel model اضافه کنید.

var user = new ApplicationUser
                {
                    Name = model.Name,
                    UserName = model.Email, 
                    Email = model.Email, 
                    UniversityName = model.UniversityName, 
                    City = model.City, 
                    PostalCode = model.PostalCode, 
                    StreetAddress = model.StreetAddress, 
                    Country = model.Country
                };

اکنون به پوشه  View  رفته و کدها را در Register.cshtml به صورت زیر تغییر دهید.

نتیجه به صورت زیر می باشد.

در هنگام پر کردن فیلدها ممکن است به خطا برخورد کنید.  برای حل این مشکل به  NuGet Pakage Manager  رفته و  Pakage Manager Console را بازکنید و به ترتیب دستورات زیر را در آن اجرا کنید.

Enable-Migrations

Add-Migration UpdateTable

Update-Database-verbose

دوباره پروژه را اجرا و داده های خود را وارد کنید.  پس از کلیک بر روی ثبت نام می توانید داده های وارد شده را در دیتابیس مشاهده کنید . برای مشاهده دیتابیس به  Server Explorer  بروید تا جدول های Update  شده خود را مشاهده کنید.

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید