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

  • Carlos Delgado

    Carlos Delga

    21 HAZİRAN 2011
  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • LounaTutorials

    LounaTutoria

    10 EYLÜL 2009