SharePoint 2013 通过HttpModule 管理视图权限

HttpModule工作原理

  HttpModule负责监听HttpRequest,当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是在此时,我们进行权限的判断,如果没有相关权限导向跳转页面。

创建HttpModule并部署

  1、打开Visual Studio 2013(当然可以用你所安装的任何版本VS),选择创建新的Project,如下图:

clip_image001

  2、选择Visual C#节点中Web几点,选择“ASP.NET Web Application”,如下图:

clip_image002

  3、选择一个空的template即可,然后点击OK,如下图:

clip_image003

  4、在Project里创建一个新项目,选择ASP.NET Module,输入名字,点击Add,如下图:

clip_image004

  5、在新加的HttpModule项目里,Init方法内添加一个新事件(这个事件是在完成所有Request时执行的),如下图:

clip_image005

  6、在新添加的方法里,添加我们判断的代码,我这里测试的视图地址是/sites/JianYu/DocLibrary/Forms/AllItems.aspx,如果当前用户符合规则,不做任何处理,否则跳转到没有权限的页面。当然,记得引用MicroSoft.SharePoint.dll这个文件;

clip_image006

  7、当然还要创建跳转页面,我们去到页面库,我们看到只有一个找不到页面时候访问的页面,我们添加一个没有权限的页面,如下图:

clip_image007

  8、点击Ribbon菜单上面Files里面New Document,选择Page,如下图:

clip_image008

  9、填写Title和URL Name,然后选择跳转页面的页面布局,点击创建,如下图:

clip_image009

  10、创建完成后,进入页面库,找到我们创建的页面,编辑属性,如下图:

clip_image010

  11、找到跳转URL属性,填写首页地址,如下图:

clip_image011

  12、然后看到这个页面已经创建完毕了,如果需要,可以修饰一下,如下图:

clip_image012

  13、接下来就是部署HttpModule了,找到我们应用程序的web.config,如下图:

clip_image013

  14、找到web.config添加我们HttpModule的注册信息,如下图:

clip_image014

  15、将生产的dll文件,部署到端口下的bin目录下,如下图:

clip_image015

  16、通过浏览器工具,可以看到页面跳转的过程,如下图:

clip_image016

总 结

  当然,我这个权限判断比较简单,如果需要负责的权限管理,可以设计一个权限列表,用来管理页面和用户与组即可,这个都是比较简单的了,呵呵。

  就是一篇比较简单的HttpModule在SharePoint上的应用,SharePoint本身基于Net的,可能还有很多Net的开发方式,可以应用到SharePoint中来,为我们的开发带来便利。

posted @ 2015-08-12 22:42  霖雨  阅读(1344)  评论(2编辑  收藏  举报