1
ajax 요청에서 위조 방지를 처리하기 위해 this solution을 구현하고 싶습니다. 나는 다른 솔루션이 있다는 것을 알고 있지만 이것은 내가 가장 좋아하는 솔루션입니다.MVC3의 AntiForgery 쿠키
문제는 System.Web.Webpages 1.0을 처리해야하므로 내 코드에서 AntiForgeryConfig.CookieName을 사용할 수 없습니다.
public override void OnAuthorization(AuthorizationContext filterContext)
{
var request = filterContext.HttpContext.Request;
// Only validate POSTs
if (request.HttpMethod == WebRequestMethods.Http.Post)
{
// Ajax POSTs and normal form posts have to be treated differently when it comes
// to validating the AntiForgeryToken
if (request.IsAjaxRequest())
{
string cookieName = AntiForgeryData.GetAntiForgeryTokenName(context.Request.ApplicationPath);
var antiForgeryCookie = request.Cookies[AntiForgeryConfig.CookieName];
var cookieValue = antiForgeryCookie != null
? antiForgeryCookie.Value
: null;
AntiForgery.Validate(cookieValue, request.Headers["__RequestVerificationToken"]);
}
else
{
new ValidateAntiForgeryTokenAttribute()
.OnAuthorization(filterContext);
}
}
}
어떻게 Mvc3에서 위조 방지 시스템에 의해 설정된 쿠키 이름을 (프로그래밍 방식으로) 검색 할 수 있습니까? 나는 AntiForgery.Validate 부분도 문제가 될 것으로 의심하지만 전에는 그것을 처리 할 것입니다. 이견있는 사람?