2016-12-09 4 views
1

cookie変数内に文字列を保存しようとしています。しかし、デバッグ後、私はそれが半分しかかからなかったのを見た。私は、このクッキー変数で、この完全な文字列を保存する方法を私に提案してください事前に感謝cookie変数内の文字列を正しく指定できない

は -

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

このクッキーの

Request.Cookies["ConnectionString"].Value 

値を見て、デバッグ時に

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)); 

答えて

3

あなたは安全にクッキーに書き込む前にクッキーの値をエンコードし、それを読み出すには元の形に戻ってそれを変換するためにSystem.Web.HttpUtilityを使用することができます。

// Encode 
HttpUtility.UrlEncode(cookieData); 

// Decode 
HttpUtility.UrlDecode(encodedCookieData); 

これはセミコロン、アンパサンドを停止し、それがクッキーに書き込まれるように名前/値のペアの束に値を分割符号に等しいであろう。

あなたのコードになるだろう:

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); 
2

クッキーはセミコロンで区切ってブラウザで処理されます。 System.Web.HttpUtilityを使用すると、安全にCookieをエンコードできます。 ASP.Netで

//encode 
HttpUtility.UrlEncode(cs); 
+0

私はこのエンコードされた文字列を受け付けない私のEDMXコンテナに、この変数を渡すメートル –

関連する問題