微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Asp.net core 3.0 中将 url 或电子邮件或特殊字符设置为 cookie?

如何解决如何在 Asp.net core 3.0 中将 url 或电子邮件或特殊字符设置为 cookie?

我想使用 asp.net core 设置 cookie。我使用此代码添加cookie

CookieOptions options = new CookieOptions();
options.Expires = DateTime.Now.AddDays(5);
Response.Cookies.Append("email","hello@gmail.com",options);

但在 cookie 中,电子邮件并未按原样存储。它就像 hello%gmail.com 。我可以将 URL 和电子邮件存储到 cookie 中。

任何帮助。谢谢

解决方法

据我所知,如果您将 cookie 存储在响应中,它将默认使用 url 加密 cookie。

当您检查客户端 cookie 时,它​​将存储如下:

enter image description here

这不会影响在您的 asp.net 核心后端代码中读取 cookie。

源代码默认会解密cookie值,让你看到结果。

更多细节,你可以参考下面的例子:

        var re = Request.Cookies["email"];

结果:

enter image description here

我尝试使用 Javascript 读取 cookie,但它似乎没有按应有的方式显示

如果你想从js中读取cookie,你应该使用decodeURIComponent 解码方法。

更多细节,您可以参考以下代码:

    $(document).ready(function () {

        var read_cookies = document.cookie;
        var split_read_cookie = read_cookies.split(";");
        for (i = 0; i < split_read_cookie.length; i++) {
            var value = split_read_cookie[i];
            value = value.split("=");
            if (value[0] == " email" ) {
                alert(value[1]);
                alert(decodeURIComponent(value[1]));
            }
        }
                  });

结果:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。