2016-10-31 73 views
0

在ASP.NET中驗證使用BundleConfig ScriptBundle創建的虛擬路徑/路由中發送的請求參數的方法嗎?驗證BundleConfig路由/ URL的請求

實施例:

我有一個BundleConfig配置如下:

bundles.Add(new ScriptBundle("~/bundles/bjqs").Include(
       "~/Scripts/bjqs-1.3.js")); 

如果用戶發送如下所示的請求:

http://example.com/bundles/bjqs?v=parameter-value_to%be+validated

如何驗證的值在請求被ASP.NET處理/處理之前,將查詢字符串v參數傳遞給正則表達式?

回答

1

您可以使用自定義HttpModule截取請求。例如:

public class MyModule1 : IHttpModule 
{ 
    public void Dispose() {} 

    public void Init(HttpApplication context) 
    { 
     context.AuthorizeRequest += context_AuthorizeRequest; 
    } 

    void context_AuthorizeRequest(object sender, EventArgs e) 
    { 
     var app = (HttpApplication)sender; 

     // Check if the parameter is valid, your logic 
     if (ValidateRequest(app.Context.Request)) 
     { 
      // Then do nothing 
      return; 
     } 

     // Otherwise, return unauthorized response 
     app.Context.Response.StatusCode = 401; 
     app.Context.Response.End(); 
    } 
}