灵异事件薄:登录及认证问题
现象描述:
网站A和网站B都是ASP.NET的应用程序,采用ASP.NET FormsAuthentication,网站B有受保护的文件夹,通过web.config配置了权限。网站C是纯ASP网站,受保护的页面是通过Session来维持用户登录状态。
存在这么一种现象:
网站A的页面1上有一个到网站B的受保护页面2的一个目标是新窗口(target="_blank")的链接a,点击这个链接会在新窗口打开页面2,之后转向到网站B的登录页面,正常登录之后关闭(按浏览器关闭按钮或Alt+F4)网站B的页面2;
再次从网站A的页面1上点击链接a,会再次在新窗口打开网站B的受保护页面2。此时并没有转向到网站B的登录页面,而且你会发现已经是先前的登录状态了。
同样,网站A的页面1上还有另外一个链接a2,点击会在新窗口打开网站C的受保护资源,第一次会要求登录,登录之后关闭网站C的页面,然后再点击链接a2,打开了网站C的受保护页面,并且也是已经登录的状态。
现象回显:
在网上搜索了许多关键字,其中发现FormsAuthentication存在许多问题,比如地址里的“/”替换成“\”或“%5C”就能蒙混过关而绕过认证等。但以上描述的现象之前还没有遇到过,我这里创建了两个web app,有兴趣的朋友可以实际运行下看看效果,我还把Trace打开了,这样可以看到认证Cookies的状态。请从这里下载它:https://files.cnblogs.com/shinyzhu/Spectral.zip
项目里有两个Web Application:web1和web2,web1上有个到web2的back文件夹的链接,按照上面的流程来运行,然后请告诉我你是否也遇到了这个现象。更进一步来说,你也可以把这两个web app部署到不同的服务器来测试。在这里我非常非常急切地希望听到大家的意见,或者有朋友知道这个原因,也请立即告诉我吧。非常非常地感谢!