im working on a project with MVC. I want to use IDENTITY Library for membership. This is solution view:
I made accountController and add Registerview.:
public async Task<ActionResult> Register(RegisterViewModel model) { if (!ModelState.IsValid) return View(model); var userManager = MemberShipTools.NewUserManager(); var roleManager = MemberShipTools.NewRoleManager(); var checkUser = userManager.FindByName(model.TCNo); if (checkUser!=null) { ModelState.AddModelError(string.Empty, "Bu TC No sistemde kayıtlı"); return View(model); } checkUser = userManager.FindByEmail(model.Email); if (checkUser!=null) { ModelState.AddModelError(string.Empty, "Bu mail adresi sistemde kayıtlı"); return View(model); } var user = new Kullanici() { Ad=model.Ad, Soyad=model.Soyad, Email=model.Email, UserName=model.TCNo, }; var response = userManager.Create(user, model.Sifre); if (response.Succeeded) { if (userManager.Users.ToList().Count() == 1) { userManager.AddToRole(user.Id, "Admin"); } else { userManager.AddToRole(user.Id, "Passive"); } return RedirectToAction("Login", "Hesap"); } else { ModelState.AddModelError(string.Empty, "Kayıt işleminde bir hata oluiştu"); return View(model); } } when i try to add new member it says "Role Admin does not exist." but added new member to User Table, AspNet Role Table was empty. After that i search and found a solving in this site, i add this lines to my code and it works great.
const string roleName = "Admin"; var role = roleManager.FindByName(roleName); if (role == null) { role = new Rol() { Name="Admin", Aciklama="Site Yöneticisi"}; roleManager.Create(role); } But its not logical, every register page i check roles and try to add role, my question is Where I should to write this Roll Adding codes, which layer which page, because i need only two or three roles. I must to create them one time , i know that but i dont know where I shoul to do this. Thanks for answers sorry for my bad english :)
Rol. Then you don't need to check every time to insert Role.