首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpCookie对Response.Cookie

HttpCookie对Response.Cookie
EN

Stack Overflow用户
提问于 2015-10-06 16:51:15
回答 1查看 1.2K关注 0票数 0

你好,各位开发人员,

我对在ASP.NET中使用cookies有点陌生,如果这是一个基本问题,我很抱歉。因此,我在我的web.config中有下面的代码,为了了解cookies,我正在玩这些代码。

代码语言:javascript
复制
  <httpCookies httpOnlyCookies="true" requireSSL="true"/>

下面是我的问题。我用两种方式创建了一个cookie (这是我需要保护的)。

我用密码保护它的方法之一-

代码语言:javascript
复制
 protected void btnSubmit_Click(object sender, EventArgs e)
    {
        HttpCookie cookie = new HttpCookie("UserInfo");
        cookie.Secure = true; // secure the cookie
        cookie["username"] = txtEmail.Text;

        if (txtEmail.Text != "")
        {
            Response.Cookies.Add(cookie);
        }

        Response.Redirect("WebForm2.aspx");
    }

现在,当我使用这段代码创建它时,我以这种方式保护了UserInfo cookie。

代码语言:javascript
复制
protected void btnSubmit_Click(object sender, EventArgs e)
{
     Response.Cookies["UserInfo"]["userName"] = txtEmail.Text;
}

下面是我的问题。为什么使用"Response.Cookies“默认使用web.config中的设置?为什么当我使用HttpCookie创建一个cookie时,我必须通过在CS代码中将它设置为true来保护它?我最好的猜测是,既然我正在创建一个HttpCookie实例,这就是为什么,但我希望在这方面有进一步的方向。

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-06 20:56:10

为什么使用"Response.Cookies“默认使用web.config中的设置?

简单/直接的答案是,这是故意的。

假设cookie在您调用时不存在

代码语言:javascript
复制
Response.Cookies["UserInfo"]["userName"] = txtEmail.Text;

cookie是为您创建的,并为其分配了值,但会给出您在以下文件中指定的默认值:

代码语言:javascript
复制
<httpCookies httpOnlyCookies="true" requireSSL="true"/>

但是,如果要像前面指出的那样实例化并将其添加到集合中,它将使用那些手动设置的值,对于new HttpCookieSecure属性默认值为false;

如Cookies集合文档中所指定的那样

您也可以密切了解HttpCookieCollection的代码,了解更多的“原因”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32975393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档