【问题标题】: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");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-25
        • 2020-10-24
        • 1970-01-01
        • 1970-01-01
        • 2021-01-04
        • 1970-01-01
        • 2014-07-23
        • 1970-01-01
        相关资源
        最近更新 更多