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
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();
}
}
Java geçersiz kılma equals() metodu ci...
Geçersiz kılma ısequal en iyi uygulama...
Django ModelForm kayıt yöntemini geçer...
C gölgeleme ve geçersiz kılma arasında...
ASP.NET MVC 4 Özel Yetki İzni Kodları ...