ASP.NET MVC’de Rol Ekleme (ID int Olmuyor)
ASP.NET MVC uygulamalarında, kullanıcılara farklı yetkiler atamak için roller kullanılır. Roller, kullanıcıların belirli kaynaklara erişimini kontrol etmek için kullanılır. Örneğin, bir yönetici rolüne sahip kullanıcı, tüm kaynaklara erişebilirken, bir kullanıcı rolüne sahip kullanıcı yalnızca belirli kaynaklara erişebilir.
ASP.NET MVC’de rol ekleme işlemi, RoleManager
sınıfı kullanılarak yapılır. RoleManager
sınıfı, rolleri yönetmek için kullanılan bir dizi yöntem içerir. Bu yöntemlerden biri de CreateAsync
yöntemidir. CreateAsync
yöntemi, yeni bir rol oluşturmak için kullanılır.
CreateAsync
yönteminin ilk parametresi, oluşturulacak rolün adıdır. İkinci parametresi ise, rolün açıklamasıdır. Üçüncü parametresi ise, rolün ID’sidir. ID, rolü benzersiz bir şekilde tanımlayan bir sayıdır.
ASP.NET MVC’de rol ekleme işlemi sırasında, ID parametresinin int veri türünde olması gerekir. Ancak, bazı durumlarda, ID parametresinin int veri türünde olmaması gerekebilir. Örneğin, rolü bir veritabanından almak istiyorsanız, ID parametresinin string veri türünde olması gerekebilir.
ID parametresinin int veri türünde olmaması durumunda, CreateAsync
yöntemini kullanarak rol ekleme işlemi gerçekleştirilemez. Bu durumda, CreateAsync
yönteminin yerine CreateRoleAsync
yöntemini kullanmanız gerekir.
CreateRoleAsync
yöntemi, CreateAsync
yöntemine benzer bir yöntemdir. Ancak, CreateRoleAsync
yönteminin üçüncü parametresi, rolün ID’si değildir. CreateRoleAsync
yönteminin üçüncü parametresi, rolün adıdır.
Aşağıdaki kod örneği, CreateRoleAsync
yöntemini kullanarak rol ekleme işleminin nasıl gerçekleştirileceğini göstermektedir:
“`
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
namespace YourApplication.Controllers
{
public class RoleController : Controller
{
private RoleManager
public RoleController()
{
_roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
}
public ActionResult CreateRole()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult CreateRole(string roleName)
{
if (ModelState.IsValid)
{
var role = new IdentityRole(roleName);
var result = _roleManager.CreateAsync(role).Result;
if (result.Succeeded)
{
return RedirectToAction("Index");
}
else
{
ModelState.AddModelError("", "Rol oluşturulamadı.");
}
}
return View();
}
}
}
“`