如何为基于windows验证的站点的某个页面、文件或文件夹单独设置匿名访问

在MOSS的项目中,我们经常碰到要单独为基于windows验证的站点的某个页面、文件或文件夹单独设置匿名访问即不登录就可以直接访问。比如说站点的A的某些图片或文件URL存在B站点下的文件夹下。此时访问A站点需要登录2次,因为A站点需要登录一次。但是图片或文件在B站点下的也需要在认证登录一次(说到这里人有人会moss文件都在数据库里头,其实这个情况根据自己业务来决定的。也许在某些情况下必须放到文件夹下,比如大文件,还有比如特定的某些上传组件或操作组件,上传文件存在文件夹下)。为了满足登录一次(当然还有其他情况,比如不需要登录一次可以直接访问,比如自己变相改造windows登录界面的,这个问题我在后面博客会写到。),因此有必要对单个文件或页面或文件夹进行匿名访问设置。

打开IIS管理里界面,我这里是IIS7.5为例子

1、单个文件或页面匿名访问设置

如我想设置login.htm为匿名访问。打开站点如下图:

image

选中login.htm右键弹出如下

 

image

选中【切换到功能视图】

image

选中操作完毕后

image

选中login.html,选择右边【功能视图】-【身份验证】,启用:匿名身份验证,如下图:

image

需要注意点如果login.htm页面引用了其他文件夹,比如图片、样式、脚本等文件夹也需要匿名设置,具体设置请看下面的文件夹匿名访问设置。

这里我的login.htm引用了images文件夹下的图片

2、文件夹匿名访问设置

接着上面的来,这里以images文件夹为例子,来说明如何对文件夹设置匿名访问,如下图:

找到images文件夹选中他。在右边【功能视图】-【身份验证】如下图:

image

进入后设置启用匿名访问,如下图:

image

 

说道这里大家以为说完了,其实基本差不多。但是有个时候我们自己开发的.NET基于windows验证的网站,可能在web.config做了如下设置。如下图

<authentication mode="Windows" />
    <authorization>
      <allow users="*" />
    </authorization>

image

那此时经过上面设置步骤后,还需要在该站点的web.config对如上的文件或文件夹进行如下设置:

<location path="Images">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

image

设置后保存。此时匿名设置才算成功。自己可以去测试下。

posted @ 2013-08-08 18:17  love007  阅读(1876)  评论(1编辑  收藏  举报