在SharePoint中处理匿名访问(Anonymous access)

来源:互联网 发布:java 模拟http请求 编辑:程序博客网 时间:2024/05/01 02:38

        我们知道SharePoint是允许匿名访问的,首先需要在Web Application中设置一下,Central Administration -> Manage web applications -> authentication providers,进入设置页面勾选Enable anonymous access:


        然后在站点设置匿名访问的权限,site settings -> site permissions -> anonymous access:


        最后在列表的权限设置页面设置匿名访问权限,这里需要注意的是,文档库和列表对匿名用户的权限设置是不同的,new item, edit item 和delete item只能在列表中赋予,在文档库中,是不能赋予匿名用户这些权限的,如图,在文档库的匿名访问设置中,前三个选项是disabled:


列表中是可以勾选的:


然后列表就可以接受匿名用户的访问了。


对于匿名访问,在编程的过程中,需要考虑以下几个问题:

1,如何判断当前用户是匿名用户?匿名用户的一个特点就是,SPContext.Current.Web.CurrentUser是null,因此可以使用下面的方法判断当前的用户是不是匿名 用户:

bool IsAnonymousUser = SPContext.Current.Web.CurrentUser == null;

2,如果需要添加自定义的页面,并且这个页面继承了“UnsecuredLayoutsPageBase”类,那么,需要重写这个类的AllowAnonymousAccess属性,这个属性默认返回false,是禁止匿名访问的,如果不重写这个AllowAnonymousAccess属性,在匿名用户访问你的页面的时候,会弹出登录框。

    public class MyPage : UnsecuredLayoutsPageBase    {        ... ...        protected override bool AllowAnonymousAccess        {            get            {                return true;            }        }        ... ...     }

3,判断匿名用户的权限可以使用DoesUserHavePermissions方法,这个方法是支持匿名用户的:

bool canAnonymousUserAddItemOnList = list.DoesUserHavePermissions(SPBasePermissions.AddListItems); //判断匿名用户在list上的权限bool canAnonymousUserAddItemOnWeb = web.DoesUserHavePermissions(SPBasePermissions.AddListItems) //判断匿名用户在web上的权限
       可以使用AnonymousPermMask64来获取匿名用户拥有的所有原子权限:

web.AnonymousPermMask64 //web,可以使用这个属性为匿名用户添加权限list.AnonymousPermMask64 //list,可以使用这个属性为匿名用户添加权限,但是文档库中即使添加了add,edit,delete item的权限,也不起作用。

4,虽然也可以给匿名用户提升权限,但是不建议这样做。


0 0
原创粉丝点击