首页 新闻 搜索 专区 学院

关于aspx页面的token认证的思路求证

0
[已解决问题] 解决于 2020-04-13 17:09

token已经是运行很广泛的认证方案了

 

在webapi下比较好理解,即

客户端发起请求需要携带token,如果没有,则去指定服务获取token,后继续完成请求,这一切都是在前端完成,并没有什么问题。

 

但是这个在aspx页面(即动态请求页面)中,需要使用token认证的话,有个问题

  客户端发起请求的时候,此时没有token,

  需要将用户向导至token获取页面token后再进行重定向至原访问页面的url,

  整个过程会多跳转一次(即跳转获取token的url,然后token随响应的头部返回),

  这个时候token已经随header回发给用户,但是怎样标识才能让后续的每次请求在header中都带上这个参数呢?

  还有一个问题,如果是搜索引擎来了的话,那么按照这个逻辑,会不会对搜索引擎不友好?

 

此问题的背景

  部分事业单位、政府类型的web服务,明明是个仅展示的站点(新闻资讯发布类型站点,用于公众展示信息,且非管理员端),却要求页面使用token(或防止非法请求)。

  具体要求如下: 请求的页面必须携带唯一认证参数,如无该参数即为违法构造请求。

kaolasz的主页 kaolasz | 初学一级 | 园豆:51
提问于:2020-04-04 21:11
< >
分享
最佳答案
0

说一下思路吧,token以key-value的形式存到cookie里,例如DEMOTOKEN=888888888888,每次aspx请求都会自动带上,这个只要你设置好了就行。
然后就是验证思路,首先aspx的 Inherits 都会指向一个 cs 类,这个类是继承 Page 方法的,剩下的就是看下 Page 的生命周期,写个basePage的几类,里面重写请求前,请求后的方法,在里面实现设置cookie第一次设置和验证cookie的逻辑。验证不过就跳转到获取页面,然后带上redirectURL,获取页面设置好cookies之后再会跳回来。
微信授权基本上都是这个思路。

奖励园豆:5
多安分 | 菜鸟二级 |园豆:387 | 2020-04-10 17:51
其他回答(1)
0

有啊,asp.net直接就有请求校验token,直接输出到form里,提交的时候会带上校验token,自动校验的

Html.AntiForgeryToken

刚才想了下这个是mvc的。。。webform里不一定能用,但大体思路差不多,应该是有现成的

吴瑞祥 | 园豆:28820 (高人七级) | 2020-04-04 21:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册