プロセスのフロントエンド1.
2.背景
1)ここで、放電して、フィルタを追加
2)フィルター法に直接添加して検証を必要とします
完了
以下は、コードブロックフィルタであります
/// <まとめ>
CSRF攻撃を防ぐのに///アヤックスプラスAntiForgeryToken
/// </要約>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method、trueに=継承され、AllowMultiple = falseに)]
publicクラスMyValidateAntiForgeryToken:AuthorizeAttribute
{
読み取り専用BOOLプライベート_ignore;
/// <要約>
///偽造セキュリティ属性
/// </要約>
/// <PARAM NAME = "無視">セキュリティ検証を無視するかどうか。</ param>の
公共MyValidateAntiForgeryToken(BOOL falseに無視= )
{
=無視this._ignore;
}
公共オーバーライド無効OnAuthorization(AuthorizationContext filterContext)
{
場合(filterContext == nullの)
新しい例外ArgumentNullException( "filterContext")を投げます。
(_ignore)であれば
リターン;
(filterContext.IsChildAction)であれば
リターン;
///只处理POST请求
場合(String.Equals(filterContext.HttpContext.Request.HttpMethod、 "POST"、StringComparison.OrdinalIgnoreCase)!)
リターン。
VAR要求= filterContext.HttpContext.Request。
VAR antiForgeryCookie = request.Cookies [AntiForgeryConfig.CookieName]。
VARにcookievalue = antiForgeryCookie!= nullの?antiForgeryCookie.Value:NULL;
AntiForgery.Validate(にcookievalue、のRequest.Form [ "__ RequestVerificationToken"]); //从クッキー和フォーム中验证防伪标记
}
}