【发布时间】:2015-12-08 17:27:00
【问题描述】:
我正在尝试在 ActionResult 上获取加密查询字符串,但参数始终为空。
我已经实现了一个电子邮件 URL 并加密了一些信息,如下所示:
string key = "r0b1nr0y";
var queryString = EncryptDecryptQueryString.Encrypt(String.Format("testId={0}&otherInfo={1}", Id, otherInfo), key);
导致这个 URL 参数:
?fpZG2mFDOZbuuBFccKLeu9Rzbn/I05i577IaaMSt0uztuHmWdeVIOQ==
网址是这样的:
www.test.com/MyController/MyAction?fpZG2mFDOZbuuBFccKLeu9Rzbn/I05i577IaaMSt0uztuHmWdeVIOQ==
现在,在控制器端,ActionResult 应该接收一个字符串。
运行程序,当我尝试测试生成的url时,代码到达MyAction但字符串参数始终为空。
public ActionResult MyAction(string queryString)
{
... Do Stuff here...
}
我也尝试为它创建一个特定的路线(like this example),但没有成功。
routes.MapRoute(
"RouteTest",
"MyController/MyAction/{queryString}",
new { controller = "MyController", action = "MyAction", queryString = "" }
);
我可以用Request.RawUrl 获取整个网址,但我真的不明白为什么加密的字符串参数为空(或为空)。
我是否在某处漏掉了重点,或者对 null 参数值有什么解释?
【问题讨论】:
标签: c# asp.net-mvc encryption