C# 在cookie变量中分配字符串工作不正常

C# 在cookie变量中分配字符串工作不正常,c#,asp.net,cookies,httpcookie,C#,Asp.net,Cookies,Httpcookie,我试图在cookie变量中保存一个字符串。但调试后,我看到它只花了一半的时间 string cs="metadata=res://*/Models.ADModel.csdl|res://*/Models.ADModel.ssdl|res://*/Models.ADModel.msl;provider=System.Data.SqlClient;provider connection string='data source=192.168.10.104;initial catalog=AlarmD

我试图在cookie变量中保存一个字符串。但调试后,我看到它只花了一半的时间

string cs="metadata=res://*/Models.ADModel.csdl|res://*/Models.ADModel.ssdl|res://*/Models.ADModel.msl;provider=System.Data.SqlClient;provider connection string='data source=192.168.10.104;initial catalog=AlarmDirectorDTU;persist security info=True;user id=aduserly;password=PasswordLY;multipleactiveresultsets=True;App=EntityFramework'"
Response.Cookies.Add(new HttpCookie("ConnectionString", cs));
在调试过程中我看到

Request.Cookies["ConnectionString"].Value
此cookie的值为-

"metadata=res://*/Models.ADModel.csdl|res://*/Models.ADModel.ssdl|res://*/Models.ADModel.msl"

请建议我如何将此完整字符串保存在此cookie变量中,提前感谢

浏览器通过分号分隔来处理cookie。您可以使用
System.Web.HttpUtility
对cookie进行安全编码

//encode
HttpUtility.UrlEncode(cs);

浏览器通过分号分隔来处理cookie。您可以使用
System.Web.HttpUtility
对cookie进行安全编码

//encode
HttpUtility.UrlEncode(cs);

在ASP.Net中,您可以使用System.Web.HttpUtility在写入cookie之前对cookie值进行安全编码,并在读取时将其转换回原始形式

// Encode
HttpUtility.UrlEncode(cookieData);

// Decode
HttpUtility.UrlDecode(encodedCookieData);
这将阻止分号、符号和等号在将值写入cookie时将其拆分为一组名称/值对

您的代码将成为:

string cs="metadata=res://*/Models.ADModel.csdl|res://*/Models.ADModel.ssdl|res://*/Models.ADModel.msl;provider=System.Data.SqlClient;provider connection string='data source=192.168.10.104;initial catalog=AlarmDirectorDTU;persist security info=True;user id=aduserly;password=PasswordLY;multipleactiveresultsets=True;App=EntityFramework'";

var encodedData = HttpUtility.UrlEncode(cs);

Response.Cookies.Add(new HttpCookie("ConnectionString", encodedData));
var cookieData = Request.Cookies["ConnectionString"].Value; 

var decodedData = HttpUtility.UrlDecode(cookieData);

在ASP.Net中,您可以使用System.Web.HttpUtility在写入cookie之前对cookie值进行安全编码,并在读取时将其转换回原始形式

// Encode
HttpUtility.UrlEncode(cookieData);

// Decode
HttpUtility.UrlDecode(encodedCookieData);
这将阻止分号、符号和等号在将值写入cookie时将其拆分为一组名称/值对

您的代码将成为:

string cs="metadata=res://*/Models.ADModel.csdl|res://*/Models.ADModel.ssdl|res://*/Models.ADModel.msl;provider=System.Data.SqlClient;provider connection string='data source=192.168.10.104;initial catalog=AlarmDirectorDTU;persist security info=True;user id=aduserly;password=PasswordLY;multipleactiveresultsets=True;App=EntityFramework'";

var encodedData = HttpUtility.UrlEncode(cs);

Response.Cookies.Add(new HttpCookie("ConnectionString", encodedData));
var cookieData = Request.Cookies["ConnectionString"].Value; 

var decodedData = HttpUtility.UrlDecode(cookieData);

我将此变量传递给不接受此编码字符串的edmx容器我将此变量传递给不接受此编码字符串的edmx容器