C# Asp.NETMVC加密查询字符串
我试图在C# Asp.NETMVC加密查询字符串,c#,asp.net-mvc,encryption,C#,Asp.net Mvc,Encryption,我试图在ActionResult上获取加密查询字符串,但参数始终为null public ActionResult MyAction(string queryString) { ... Do Stuff here... } 我已经实现了一个电子邮件URL,并对一些信息进行了加密,如下所示: string key = "r0b1nr0y"; var queryString = EncryptDecryptQueryString.Encrypt(String.Format
ActionResult
上获取加密查询字符串,但参数始终为null
public ActionResult MyAction(string queryString)
{
... Do Stuff here...
}
我已经实现了一个电子邮件URL,并对一些信息进行了加密,如下所示:
string key = "r0b1nr0y";
var queryString = EncryptDecryptQueryString.Encrypt(String.Format("testId={0}&otherInfo={1}", Id, otherInfo), key);
www.test.com/MyController/MyAction?fpZG2mFDOZbuuBFccKLeu9Rzbn/I05i577IaaMSt0uztuHmWdeVIOQ==
它将产生以下URL参数:
?fpZG2mFDOZbuuBFccKLeu9Rzbn/I05i577IaaMSt0uztuHmWdeVIOQ==
url是这样的:
string key = "r0b1nr0y";
var queryString = EncryptDecryptQueryString.Encrypt(String.Format("testId={0}&otherInfo={1}", Id, otherInfo), key);
www.test.com/MyController/MyAction?fpZG2mFDOZbuuBFccKLeu9Rzbn/I05i577IaaMSt0uztuHmWdeVIOQ==
现在,在控制器端,假设ActionResult
接收一个字符串
运行程序时,当我尝试测试生成的url时,代码到达MyAction
,但字符串参数始终为null
public ActionResult MyAction(string queryString)
{
... Do Stuff here...
}
我也尝试为它创建特定的路由(),但没有成功
routes.MapRoute(
"RouteTest",
"MyController/MyAction/{queryString}",
new { controller = "MyController", action = "MyAction", queryString = "" }
);
我可以使用Request.RawUrl
获取整个url,但我真的不明白为什么加密字符串参数为null(或空)
我是否在某个地方漏掉了这一点,或者对空参数值有何解释?它是空的,因为您的方法希望您的url以以下内容结尾:
?queryString=xxxxxxxx
我理解您的方法,但是您必须单独加密所有参数,使用我上面展示的方法,或者为该方法编写您自己的模型绑定器,该方法可以解释URL中的内容,以便代码使用
模型绑定器:它为空,因为您的方法希望您的url以以下内容结尾:
?queryString=xxxxxxxx
我理解您的方法,但是您必须单独加密所有参数,使用我上面展示的方法,或者为该方法编写您自己的模型绑定器,该方法可以解释URL中的内容,以便代码使用
模型绑定器:首先,您需要对Base64字符串进行URL编码,因为“/”和“=”在您的URL中有特殊含义 第二:如果没有路由,您的URL应该是: www.test.com/MyController/MyAction?queryString=[UrlEncodedBase64]
使用与操作的参数名称匹配的查询字符串参数。首先,您需要对Base64字符串进行URL编码,因为“/”和“=”在URL中具有特殊含义 第二:如果没有路由,您的URL应该是: www.test.com/MyController/MyAction?queryString=[UrlEncodedBase64]
使用与操作的参数名称匹配的查询字符串参数。感谢您的回复。是的,我忘记在编码的查询字符串之前包含“查询字符串”,谢谢回复。是的,我忘了在编码的查询字符串之前加上“查询字符串”,