SORU
14 NİSAN 2009, Salı


Geçersiz kılma ASP.NET Öznitelik Yetki MVC

Hangi çapındaki neredeyse tüm (ve onların eylemleri birlikte) yetkili olmak istiyorum öznitelik Yetki başvurdum MVC denetleyicisi temel sınıf var.

Ancak bir denetleyicisi ile başka bir denetleyici bir eylem izinsiz gerekiyor. [Authorize(false)] veya bir şey ile onları süslemek için mümkün istedim ama bu kullanılamaz.

Herhangi bir fikir?

CEVAP
14 NİSAN 2009, Salı


Edit: en iyi yaklaşımın yerleşik AllowAnonymous öznitelik. kullanmaktır MVC 4 ASP.NET Beri

Cevap aşağıda ASP.NET MVC önceki sürümlerini belirtir

Özel yetki bir öznitelik izin gerekli olup olmadığını belirlemek için isteğe bağlı bool parametresi ile standart AuthorizeAttribute devralmasını oluşturabilirsiniz.

public class OptionalAuthorizeAttribute : AuthorizeAttribute
{
    private readonly bool _authorize;

    public OptionalAuthorizeAttribute()
    {
        _authorize = true;
    }

    public OptionalAuthorizeAttribute(bool authorize)
    {
        _authorize = authorize;
    }

    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if(!_authorize)
            return true;

                    return base.AuthorizeCore(httpContext);
    }
}

Daha sonra bu öznitelik ile ana kumanda dekore edebilirsiniz:

[OptionalAuthorize]
public class ControllerBase : Controller
{
}

ve herhangi denetleyicileri için izin sadece bir yükleyiciyi kullanmak istemiyorum 'false - ör'

[OptionalAuthorize(false)]
public class TestController : ControllerBase
{
    public ActionResult Index()
    {
        return View();
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • hytchme

    hytchme

    9 Mart 2014
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007