想实现一个目的:
在不改变现在SharePoint站点的默认登陆机制(域用户验证、不开启匿名登陆)的基础上,想把原有的存于SharePoint内容数据库中的Default.aspx换为本地(物理磁盘下)站点对应根目录的某个文件,以实现给SharePoint增加不需要验证的欢迎页面等需要
试验结果:
在SharePoint对应的本地路径下(如C:\Inetpub\wwwroot\wss\VirtualDirectories\80)下添加一个文件比如Index.aspx,那么直接通过http://moss.webplat.net/Index.aspx肯定不能解析到!为什么呢?
原因是:
默认情况下SharePoint站点在web.config中完全remove掉所有动作为"GET,HEAD,POST"的httpHandlers,见下面的代码
- <httpHandlers>
- <remove verb="GET,HEAD,POST" path="*" />
- ……
- </httpHandlers>
然后把URL请求的文件重新使用Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler进行解构。所有不管在本地如何添加文件(这里的“本地”指未被SharePoint排除的位置,wpresources、LAYOUTS等除外),是不可能通过看似正确的URL来访问到本地页面文件。
那么如何解决呢?在这儿不提供一种简单的解决方法,以实现“使用本地文件作为SharePoint站点的欢迎页(该欢迎页下可以实现登陆等操作)”,如下
1、在SharePoint对应的本地路径下(如C:\Inetpub\wwwroot\wss\VirtualDirectories\80),找到并打开web.config,(大约110行前后)找到如下代码
- <httpHandlers>
- <remove verb="GET,HEAD,POST" path="*" />
2、紧接着新加一行,内容如下:
- <!--添加排除文件功能 开始-->
- <add verb="*" path="Index.aspx" type="System.Web.UI.PageHandlerFactory" />
- <!--添加排除文件功能 结束-->
3、然后在本地的C:\Inetpub\wwwroot\wss\VirtualDirectories\80下新建一个文件为Index.aspx,里面放置相关的HTML代码即可。over
总结:这种方式的好处,不需要开发代码,不需要改变IIS的设置,简单易行!
PS:当然实现这种类似的功能也可以通过开发httpHandlers来达到,感兴趣的可以试一下,呵呵。
2008年12月7日 更新如下:请参考我今天新写的一篇Blog来完美实现该功能。
Currently rated 3.3 by 7 people
- Currently 3.285714/5 Stars.
- 1
- 2
- 3
- 4
- 5