【问题标题】:Decrypt Querystring Parameters and Map it to controller解密查询字符串参数并将其映射到控制器
【发布时间】:2014-08-04 16:42:52
【问题描述】:

我有一个类似的控制器方法

public ViewResult MyMethod(long id, string pId)
{

}

我有一个类似的查询字符串

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

我想使用某种加密算法对其进行加密,然后我得到某种格式的查询字符串,例如

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;

            } 
        }

我希望 Controller Method 能够获取它的参数值,我该如何实现呢?

请任何人都可以帮助我。

【问题讨论】:

标签: c# asp.net-mvc encryption url-rewriting global-asax


【解决方案1】:

我找到了解决方案我解密了我的基本控制器

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);
        }
 }

【讨论】:

  • 你把它放在哪里了,在 globax.asax 文件中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 2013-03-20
  • 2017-04-14
  • 1970-01-01
  • 2021-05-19
相关资源
最近更新 更多