Yetkilendirme özniteliği, varsayılan olarak httpcontext'i argüman olarak alır. çağrıldığında Daha sonra HttpContext.User.Identity.IsAuthenticated bool değerini denetler ve buna göre davranır. Bu, yalnızca Form kimlik doğrulaması kullanıyorsanız çalışır. Kendi oturum açma mantığınızı (örneğin oturum nesnesinde) kullanıyorsanız, Yetkilendirme Özniteliği'nden bir sınıf çıkartabilirsiniz ve bunu çağırabilirsiniz.
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class MyAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
clsSession sess = httpContext.Session["Current"] as clsSession;
if (sess.IsLogin) return true;
return false;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new ViewResult { ViewName = "Unauthorized" };
}
}
Sonra böyle bu sınıfı kullanabilirsiniz: Bu çalışacaktır
[MyAuthorize]
public ActionResult Index()
{
return View();
}
. Tüm denetleyici işlemlerinde [Yetkilendir] yerine [Yetkilendir] seçeneğini kullanabilirsiniz. Yanlış döndürürse, bir görünüm döndürür (Bu durumda "Yetkisiz"). Görünüm adı herhangi bir şey olabilir ve görünümler/paylaşımlı klasörde bulunabilir.
Çok teşekkürler. Büyük kaynak! – Jose3d