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

        我们知道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,虽然也可以给匿名用户提升权限,但是不建议这样做。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值