关于Cookie和SSL

lg_tz 2009-12-28 08:25:47
MSDN上说启用SSL可以防止Cookie在传输过程中被截获,并不防碍其读取操作。没启用时可以正常读取,怎么我启用SSL后,虽然可以写Cookie,但不能读,我是按没启用SSL时的方法读,是否是这里有问题?请各位帮忙,谢谢。
我的代码:
前台
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" ValidateRequest="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<center>
<form id="form1" runat="server">
<div style="text-align: left; width: 320px; padding-top: 200px; border: solid 1px green;">
<asp:Label ID="domainLabel" runat="server"></asp:Label>
<asp:Label ID="nameLabel" runat="server"></asp:Label><br />
<asp:Label ID="keyLabel" runat="server"></asp:Label><br />
<asp:Label ID="valueLabel" runat="server"></asp:Label><br />
<asp:TextBox ID="keyTextBox" runat="server"></asp:TextBox><br />
<asp:TextBox ID="valueTextBox" runat="server"></asp:TextBox>
<asp:Button ID="okButton" runat="server" Text="确定" OnClick="okButton_Click" />
</div>
</form>
</center>
</body>
</html>


后台
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Cookies["KeyValue"] != null)
{
this.domainLabel.Text = Request.Cookies["KeyValue"].Domain;
this.nameLabel.Text = Request.Cookies["KeyValue"].Name;
this.keyLabel.Text = Request.Cookies["KeyValue"]["key"];
this.valueLabel.Text = Request.Cookies["KeyValue"]["value"];
}

}

protected void okButton_Click(object sender, EventArgs e)
{
HttpCookie keyvalue = new HttpCookie("KeyValue");
keyvalue["key"] = !string.IsNullOrEmpty(this.keyTextBox.Text) ? this.keyTextBox.Text : "<font color=red>CookieKey</font>";
keyvalue["value"] = !string.IsNullOrEmpty(this.valueTextBox.Text) ? this.valueTextBox.Text : "<font color=green>This is a Cookie!</font>";
keyvalue.Expires = DateTime.Now.AddDays(2d);
//keyvalue.Secure = false;
Response.Cookies.Add(keyvalue);
}
}


配置
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<!--
设置 compilation debug="true" 将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true"/>
<!--
通过 <authentication> 节可以配置 ASP.NET 使用的
安全身份验证模式,
以标识传入的用户。
-->
<authentication mode="Windows"/>

<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<httpCookies requireSSL="true"/>
</system.web>
</configuration>

...全文
253 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lg_tz 2009-12-29
  • 打赏
  • 举报
回复
弄成了。非常感谢大家的助!

此网站的安全证书有问题。


此网站出具的安全证书是为其他网站地址颁发的。

安全证书问题可能显示试图欺骗您或截获您向服务器发送的数据。
建议关闭此网页,并且不要继续浏览该网站。
单击此处关闭该网页。
继续浏览此网站(不推荐)。
someegg 2009-12-29
  • 打赏
  • 举报
回复
lg_tz 2009-12-29
  • 打赏
  • 举报
回复
是不是和没有证书有关啊?
lg_tz 2009-12-29
  • 打赏
  • 举报
回复
还有:
在“安全通信”框中,请选中“要求安全通道 (SSL)”复选框。

我是按IIS帮助配置的。
lg_tz 2009-12-29
  • 打赏
  • 举报
回复

是不是这样的?

在 Web 服务器上设置 SSL

在 IIS 管理器中,展开本地计算机,然后展开“网站”文件夹。
右键单击要使用 SSL 保护的网站或文件,然后单击“属性”。
在“网站标识”下面,单击“高级”。
在“高级网站标识”框的“此网站的多个标识”下面,确保将网站的 IP 地址分配给端口 443(这是安全通信的默认端口),然后单击“确定”。要为此网站配置其他的 SSL 端口(可选),请在“此网站的多个标识”下面单击“添加”,然后单击“确定”。
在“目录安全性”或“文件安全性”选项卡的“安全通信”下面,单击“编辑”。

真相重于对错 2009-12-29
  • 打赏
  • 举报
回复
没有配置正确
lg_tz 2009-12-29
  • 打赏
  • 举报
回复
配了,但提示:

该页必须通过安全通道查看
您试图访问的页面使用安全套接字层 (SSL) 进行保护。

请尝试以下操作:
在您要访问的地址前键入 https:// 并按 Enter。
HTTP 错误 403.4 - 禁止访问:需要使用 SSL 查看该资源。
Internet 信息服务 (IIS)

技术信息(为技术支持人员提供)
转到 Microsoft 产品支持服务并搜索包括“HTTP”和“403”的标题。
打开“IIS 帮助”(可在 IIS 管理器 (inetmgr) 中访问),然后搜索标题为“关于安全”、“安全套接字层 (SSL)”和“关于自定义错误消息”的主题。

输入https://后提示:
错误!
无法连接远程服务器

您试图访问的地址 https://localhost/NewCookie/Default.aspx 目前不可用。请确保网址(URL)拼写和标点符号使用都正确,然后试着重新载入页面。
请确定您的 Internet 连接处于活动状态,然后再检查一下同一连接上的其它应用程序是否工作正常。
真相重于对错 2009-12-29
  • 打赏
  • 举报
回复
ssl 作用是
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。
=====
<httpCookies requireSSL="true"/>
iis 里面配置ssl了没?
rczjp 2009-12-29
  • 打赏
  • 举报
回复
mark.,.
lg_tz 2009-12-29
  • 打赏
  • 举报
回复
没人啊
lg_tz 2009-12-29
  • 打赏
  • 举报
回复
那怎样把页面弄成HTTPS页面,像126邮箱一样,当选中一个CheckBox就使用SSL安全登录?
wuyq11 2009-12-28
  • 打赏
  • 举报
回复
在设置Cookies的属性时,有一个选项Secure用来控制Cookie的加密特性。
如果通过 SSL 连接 (HTTPS) 传输 Cookie,则为 true;否则为 false。默认为 false。
如果保存一个Cookies并设置加密,那么在非HTTPS的页面中,无论是使用javascript还是服务器端都无法获得此Cookies。但是在本地依然可以看到此Cookies的存在。
Response.Cookies["A"].Value = "";
Response.Cookies.Add(new HttpCookie("B", ""));

Request.Cookies["k1"].Value ;
vip__888 2009-12-28
  • 打赏
  • 举报
回复
Request.Cookies["KeyValue"].Value
试一下
xierfly 2009-12-28
  • 打赏
  • 举报
回复
应该跟一般的cookie取值一样的

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧