php asp.net session,asp.net通过sessionid cookie获取session信息

如何设置asp.net sessionid获取用户session信息,如使用了uploadify,swfupload等居于flash上传的控件,非ie浏览器flash不会传递sessionid的cookie值到服务器,会导致无法获取当前用户的session值,从而无法将图片和当前用户关联起来。

解决办法就是通过get/post传递当前用户的SessionId到服务器(sessionid值也存储在cookie中,名称为ASP.NET_SessionId,但是这个cookie是httponly的,js无法读取==》HostOnly Cookie和HttpOnly Cookie),所以需要用服务器端代码来复制给客户端。

php可以通过session_id来重置sessionid

if (isset($_POST["PHPSESSID"])) {

session_id($_POST["PHPSESSID"]);

} else if (isset($_GET["PHPSESSID"])) {

session_id($_GET["PHPSESSID"]);

}

asp.net需要在Global.asax中的Application_BeginRequest中获取get/post提交的sessionid值,然后生成ASP.NET_SessionId这个cookie来实现。

void Application_BeginRequest(object sender, EventArgs e)

{

string session_param_name = "ASPSESSID";//get/post提交的sessionid键名称,如果键名称不是这个自己修改变量值

string session_cookie_name = "ASP.NET_SessionId";//asp.net生成的记录cookie值的名称,这个不要修改

string SessionIDValue = Request.Form[session_param_name];

if (!string.IsNullOrEmpty(SessionIDValue))//传递了SessionId值则重置Session对应的cookie值

try

{

UpdateCookie(session_cookie_name,SessionIDValue);

}

catch (Exception)

{

Response.StatusCode = 500;

Response.Write("Error Initializing Session");

Response.End();

}

}

void UpdateCookie(string cookie_name, string cookie_value)

{

HttpCookie cookie = Request.Cookies.Get(cookie_name);

if (cookie == null)

{

cookie = new HttpCookie(cookie_name);

cookie.Value = cookie_value;

Request.Cookies.Set(cookie);

}

}

然后swfupload或者upload设置附加表单提交值,附带上SessionID

swfupload

var settings = {

flash_url: "swfupload/swfupload.swf",

upload_url: "/upload.ashx",

post_params: {"ASPSESSID" : """},//注意这里用了服务器端标签,所以这个代码一定要放在aspx之类的动态页里面,不能单独放js文件里面

//...其他配置

uploadify

var settings = {

swf: "uploadify.swf",

uploader: "/upload.ashx",

formData: {"ASPSESSID" : """},//注意这里用了服务器端标签,所以这个代码一定要放在aspx之类的动态页里面,不能单独放js文件里面

//...其他配置

相关文章

加支付宝好友偷能量挖...

2017-8-4Web开发网

阅读(1035)喜欢(0)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值