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

  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006
  • SlimaksClass

    SlimaksClass

    15 Kasım 2010