之前写过RS2008匿名访问的文章( 实现Reporting Service2008 的匿名访问(亲测可行) ),虽然可行,但是不优雅,而且极容易出错,已经付出过多次重装RS的代价了,最近偶然的一次机会,在错乱之中发现一种较为优雅的方法,该方法不涉及文件替换、更改配置文件等暴力手段。当然该方法有一定的限制(具体在后面探讨,探讨是本文重点)
直接说配置:
第一步:在IIS7.5下创建网站(该网站需包含报表显示页面,一般访问会弹出Windows验证),创建步骤略过,创建网站后,IIS7.5默认会在应用程序池中添加与网站同名的应用程序池。
选中应用程序池点右键,选择“基本设置”,将“托管管道模式”配置为“经典”,如下图:
第二步:在网站的“身份验证”中启用“匿名身份验证”,选中“匿名身份验证”点“编辑”,配置为如下图所示:
第三步:打开报表管理器,在属性“安全”选项卡中点击“新建角色分配”,添加用户“IIS APPPOOL\你的应用程序池名称”,分配必要的权限。
在别的机器上访问你的网站试试,效果出来了吧!没出来的可以再试试或者站内信我。
本文重点
出这篇文章的目的之一是告诉大家一种新的方式,方便大家解决平时项目中的一些问题,但这不是主要目的,主要目的是探讨这个方法为什么可行。本人才疏学浅,对于Windows账户这块一直是一知半解,对于这次偶然获取的新途径也没理解是什么原因。在报表管理器中添加的“IIS APPPOOL\你的应用程序池名称”用户,在计算机用户列表中是找不到的,甚至连IIS APPPool用户组都没有。用同样的方式在IIS6.0中是无法实现的,因为无法添加这个用户,由于手头没有IIS7.0,所有无法验证IIS7.0是否可行。
目前心里的疑问:1、为什么找不到这个用户和用户组?2、IIS6.0中的APPPool和IIS7.5中的有什么不同?3、这是出RS2008没有考虑到Win7中新应用的一个漏洞吗?
以上问题希望园子里的大大们能解释一下。
新想法:是否能够根据这个思路,在WIN2003中也实现这种匿名方式,哪怕稍微有点绕,毕竟比以前的方法要和谐很多。
说明:发到首页直是想让更多人看到,获取帮助的同时也能解答下我心中的疑问。