【问题标题】:How can i hide the Request parameter fields in url using MVC?如何使用 MVC 隐藏 url 中的请求参数字段?
【发布时间】:2020-11-16 13:21:24
【问题描述】:
我正在使用以下内容来重定向和调用 api:
在我的操作方法中,我有以下内容:
if (token != null)
{
return Content($"https://localhost:1234/user/UserTokenLogin?token={myToken}");
}
现在我可以在 url 中看到令牌。有没有办法可以隐藏这个参数字段,但仍然在目标 api 上提取它?
【问题讨论】:
标签:
c#
api
model-view-controller
【解决方案1】:
您需要应用编码/解码程序。我会给你一个 Base64 编码的例子,但如果你愿意,你可以找到更安全的算法。
public string Encode(string strToEncode)
{
byte[] encodedVal = System.Text.Encoding.UTF8.GetBytes(strToEncode);
return Convert.ToBase64String(encodedVal);
}
public string Decode(string strToDecode)
{
byte[] decodedVal = Convert.FromBase64String(strToDecode);
return System.Text.Encoding.UTF8.GetString(decodedVal);
}
然后你可以如下应用它。
if (token != null)
{
var encodedToken = Encode(myToken);
return Content($"https://localhost:1234/user/UserTokenLogin?token={encodedToken}");
}
public ActionResult UserTokenLogin(string token){
var decodedToken = Decode(token);
//do other stuff.
}
【解决方案2】:
您可以与标头参数一起使用。它通常用于标题中。
Response.Headers.Add("AuthToken", "token");