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

  • Eric Anthony

    Eric Anthony

    13 AĞUSTOS 2011
  • Kenneth Håkonsen

    Kenneth Håk

    13 Mart 2011
  • michaeljacksonVEVO

    michaeljacks

    2 EYLÜL 2009