URL参数的编码

时间:2010-09-29 12:51:42

标签: c# asp.net-mvc encoding

我有一个页面是一个回调页面,当用户被重定向到我的页面时,我散列参数并检查它是否有效。我的问题是当myParameter包含å,ä和ö等字符时。如果我在控制器中将myParameter更改为“与åäö相同的值”,则它可以正常工作。

我认为它与编码有关,我已经看了几个转换编码的解决方案,但没有一个解决了我的问题。

你有什么好主意吗?

public ActionResult MyCallback(string myParameter, string myMAC)
{
    // This works...
    myParameter = "same value with åäö";

    if(Hash(myParameter + mySecrect).Equals(myMAC))
    {
        // Valid.
    }

    return View();
}

2 个答案:

答案 0 :(得分:1)

我通过从URL获取参数并自行解码来解决它。

Regex regex = new Regex(@"foo=(.*?)(&|\z)");
string myFooParameter = regex.Match(Request.RawUrl).Groups[1].Value;
myFooParameter = HttpUtility.UrlDecode(myFooParameter, Encoding.GetEncoding(28591));

答案 1 :(得分:0)

你确定你的Hash例程现在出现了问题吗?

你能用MVC之外的问题值来计算Hash吗?