找回密码
 立即注册

QQ登录

只需一步,快速开始

renho 活字格认证

银牌会员

81

主题

1269

帖子

3364

积分

银牌会员

积分
3364

活字格高级认证

QQ
renho 活字格认证
银牌会员   /  发表于:2021-10-12 19:02  /   查看:10711  /  回复:31
本帖最后由 Patrick.Zhu 于 2024-2-23 15:50 编辑



故事是这样的,有些php开发的系统是通过Session进行验证,经Post认证登录的时候仅返回cookie,而Session又存放在cookie里。


建议完善下发送http请求命令,使其可以返回cookie内容。

31 个回复

正序浏览
zsdtylj
中级会员   /  发表于:2022-2-26 17:07:15
推荐
本帖最后由 zsdtylj 于 2022-2-26 17:18 编辑
renho 发表于 2022-2-14 17:53
服务端命令……好像我们说的不是同一个,前端确实可以用js操作,但是跨域麻烦。后端不需要跨域,但是没法 ...

其实很简单.我自己就用了好久了.自己写一个服务端插件.去获取对应的cookie.这个关键的代码.可以参考下.直接返回获取的cookie
  1. public void login()
  2.         {
  3.         var form = Context.Request.ReadFormAsync().Result;
  4.         var urladd = form["URL"];
  5.    

  6.             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urladd);
  7.            
  8.             try
  9.             {
  10.                 HttpWebResponse response = (HttpWebResponse)(request.GetResponse());
  11.                 string cc = response.GetResponseHeader("Set-Cookie");
  12.                 this.Context.Response.WriteAsync(cc);
  13.             }
  14.             catch (WebException ex)
  15.             {
  16.                 var response = (HttpWebResponse)ex.Response;
  17.                 string cc = response.GetResponseHeader("Set-Cookie");
  18.                
  19.                 string[] machineStrings = cc.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);

  20.                 string[] st1 = machineStrings.Where(s => s.StartsWith("sessionCookie")).ToArray();
  21.                 string[] st2 = machineStrings.Where(s => s.StartsWith("_ati")).ToArray();
  22.                 this.Context.Response.WriteAsync(st1[0]);
  23.             }
复制代码


评分

参与人数 1金币 +5 收起 理由
Joe.xu + 5 很给力!

查看全部评分

回复 使用道具 举报
guoqp
银牌会员   /  发表于:2022-2-10 10:50:21
推荐
我也遇到这个问题,并不只是用于单点登录场景,我现在有一个场景需求就是要抓取三方系统后台数据,而这个数据需要登录后才能获取到,POST只能发送登录请求,可以发送COOKIES,但其返回的COOKIES取不到,在后续提交的GET请求中就无法使用返回的COOKIES提交,也就无法实现身份验证

本来我的理解是浏览器POST后COOKIE应该是跟访问一个效果的,COOKIE会自动保存,再次访问时会自动使用COOKIES,经测试发现并不是这么回事,还是需要提交COOKIES才能完成登录验证
回复 使用道具 举报
Patrick.Zhu
银牌会员   /  发表于:2024-2-23 16:01:40
32#
回复 使用道具 举报
renho活字格认证
银牌会员   /  发表于:2024-2-21 09:34:06
31#
true 发表于 2024-2-21 08:51
这个功能应该只需要HTTP请求插件能拿到响应头就行了吧

是的
回复 使用道具 举报
true
中级会员   /  发表于:2024-2-21 08:51:05
30#
这个功能应该只需要HTTP请求插件能拿到响应头就行了吧
回复 使用道具 举报
Patrick.Zhu
银牌会员   /  发表于:2024-2-20 11:44:05
29#
优先级已加。但是看回复,楼主通过上面大佬分享的代码,已经实现了对应的功能,你可以参考下
回复 使用道具 举报
amtath悬赏达人认证 活字格认证
论坛元老   /  发表于:2024-2-18 23:25:22
28#
2024-02-18 还是相同的需求
回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2022-4-19 17:57:01
27#
跪求大佬分享一下代码
回复 使用道具 举报
mfkpie8
银牌会员   /  发表于:2022-4-19 16:20:37
26#

怎么实现的这个代码能发不?
回复 使用道具 举报
renho活字格认证
银牌会员   /  发表于:2022-4-19 15:30:40
25#
mfkpie8 发表于 2022-4-19 14:19
这样可以实现登陆了吗?有些平台?

可以的
回复 使用道具 举报
mfkpie8
银牌会员   /  发表于:2022-4-19 14:19:23
24#
zsdtylj 发表于 2022-2-26 17:07
其实很简单.我自己就用了好久了.自己写一个服务端插件.去获取对应的cookie.这个关键的代码.可以参考下.直 ...

这样可以实现登陆了吗?有些平台?
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部