2014-06-14 42 views
0

我有一層電腦板的方法類似解密查詢字符串參數並將其映射到控制器

public ViewResult MyMethod(long id, string pId) 
{ 

} 

我有一個查詢字符串如

?'id=' + 10 + '&pId=' + 15

我想後,使用一些加密算法進行加密我得到了一些格式的查詢sting,如

gaiSXZyTAq6Z0a5TzsrdG2LjIj0moe2m4D0qQiG7zuQ= 

我從Global.asax解密它開始請求,能夠解密,並設置查詢字符串的所有密鑰,但控制器沒有能夠得到它的參數值

protected void Application_BeginRequest(object sender, EventArgs e) 
     { 
      if (!string.IsNullOrEmpty(Convert.ToString(Request.QueryString))) 
      { 
       var newQueryString = SecurityEncryption.DecryptionValue(HttpUtility.UrlDecode(Convert.ToString(Request.QueryString)).Replace(" ", "+")); 
       Request.QueryString.AllKeys[0] = newQueryString; 

      } 
     } 

我想要的控制器的方法會得到它的參數值,我怎麼能做到這一點?

請任何人都可以幫助我。

+0

可能重複http://stackoverflow.com/questions/603092/how-to-pass-encrypted-query-string-in-asp-net –

+1

@NachoLaborde這個問題是在asp.net中,我問它在Asp.net MVC和在這裏我想得到像中間轉換我原來的格式加密的查詢字符串,也是我的控制器方法也得到這些參數。 – Sid

+0

好吧,你可以創建一個這樣的屬性http://www.dotnettrace.net/2013/09/encrypt-and-decrypt-url-in-mvc-4.html –

回答

0

我發現我sollution解密我的基本控制器的

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    var queryStringQ = Server.UrlDecode(filterContext.HttpContext.Request.QueryString["q"]); 
if (!string.IsNullOrEmpty(queryStringQ)) 
     { 
      // Decrypt query string value 
      var queryParams = DecryptionMethod(queryStringQ); 
     } 
} 
+0

你在哪裏把這個放在globax.asax文件中? –

相關問題