1
Merhaba,Kullanıcı login olduktan sonra eğer controller için yetkim yoksa nasıl uyarı verdirebilirim ? Ya da istediğim sayfaya nasıl yönlendirebilirim ?
Şu anda kullanıcıya role ekleyebiliyorum,role tanımlıysa kullanıcı controller a erişebiliyor fakat yetkisi yoksa uyarı vermek istiyorum.
0
Öncelikle projenizin Rootuna şu şekilde bir class ekleyin:
using System.Web.Mvc; namespace WebApplication9 { public class ErisimKontrolOzelligi : AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); if (!filterContext.HttpContext.User.Identity.IsAuthenticated) { filterContext.Result = new RedirectResult("/login"); return; } if (filterContext.Result is HttpUnauthorizedResult) { filterContext.Result = new RedirectResult("/hata/erisimengellendi"); } } } }
Daha sonra Controller'ı şu şekilde düzenleyin:
using System.Web.Mvc; namespace WebApplication9.Controllers { [ErisimKontrolOzelligi(Roles="admin")] public class uzmanimController : Controller { // GET: uzmanim public ActionResult Index() { return View(); } } }
ErisimKontrolOzelligi class'ı içindeki /login ve /hata/erisimengellendi yönlendirmelerini kendinize göre düzenleyin.
AuthorizeAttribute sınıfından yeni bir erişim denetleme özelliği türetiyoruz. Daha sonra OnAuthorization metodunun üzerine yazarak bu metodun içinde gerekli kontrolleri yapıyoruz.
En sonunda da Controller'a yeni tanımladığımız özelliği ekliyoruz.
Cevap yazabilmek için üye girişi yapmalısınız.
Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol