cevap

16

follwing sınıf yukarıdaki sınıf global.asx dosyada RegisterGlobalFilters yöntemine Bu eklemek kullanmak için bir FilterProvider

public IEnumerable<Filter> GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor) 
{ 
    List<Filter> result = new List<Filter>(); 

    string incomingVerb = controllerContext.HttpContext.Request.HttpMethod; 

    if (String.Equals(incomingVerb, "POST", StringComparison.OrdinalIgnoreCase)) 
    { 
     result.Add(new Filter(new ValidateAntiForgeryTokenAttribute(), FilterScope.Global, null)); 
    } 

    return result; 
} 

ile bunu yapmasına izin: Bu işlem,

...  
FilterProviders.Providers.Add(new AntiForgeryTokenFilterProvider()); 
.. 

, her [HttpPost] kontrol edecek Html.AntiForgeryToken() görüntüdeyse.

+1

Filtre sağlayıcınız herhangi bir temel sınıftan mi devraldı? – Paul

+5

Kod, uygulamaya her istek için bir listenin oluşturulmasına neden olacaktır. Verim kullanılarak geliştirilebilir: getiri getiri yeni Filter (yeni ValidateAntiForgeryTokenAttribute(), FilterScope.Global, null); – ShadowChaser

+1

Kesinlikler için tüm sınıfa bağlantı: https://code.google.com/p/vnecoo/source/browse/trunk/Code/Oas2011/OAS/Helpers/AntiForgeryTokenFilterProvider.cs?r=148 – Jon

İlgili konular