在SharePoint中处理匿名访问(Anonymous access)
2014-02-23 10:10
465 查看
我们知道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,因此可以使用下面的方法判断当前的用户是不是匿名 用户:
2,如果需要添加自定义的页面,并且这个页面继承了“UnsecuredLayoutsPageBase”类,那么,需要重写这个类的AllowAnonymousAccess属性,这个属性默认返回false,是禁止匿名访问的,如果不重写这个AllowAnonymousAccess属性,在匿名用户访问你的页面的时候,会弹出登录框。
3,判断匿名用户的权限可以使用DoesUserHavePermissions方法,这个方法是支持匿名用户的:
4,虽然也可以给匿名用户提升权限,但是不建议这样做。
然后在站点设置匿名访问的权限,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,虽然也可以给匿名用户提升权限,但是不建议这样做。
相关文章推荐
- Search does not work with Anonymous Access(匿名访问搜索无任何结果)
- SharePoint2013 IT Professional - Anonymous Access 匿名访问
- SharePoint 2010 在允许匿名访问的网站中隐藏登陆链接
- SharePoint中的匿名访问
- ASP.NET 访问文件夹权限不足,提升权限 /System.UnauthorizedAccessException 拒绝访问的处理方法
- 启用 SharePoint 2010 的匿名用户访问支持
- sharepoint 网站匿名访问列表出错
- SharePoint的备用访问映射(Alternate access mappings)不是孤独的应用
- SharePoint 2010 匿名用户调用Client Object Model访问列表项
- 如何开启匿名访问SharePoint 2010里的Client Object Model
- SharePoint中SMTP服务器不允许匿名访问的原因出错提示
- 如何访问Azure上的SharePoint 网站(How to access the SharePoint site of Azure)
- SharePoint 2010 站点允许匿名访问
- SharePoint 2010用“localhost”方式访问网站,File not found问题处理方式
- SharePoint 2013 图文介绍匿名访问,及问题解决方法。
- SharePoint创建Alternate Access Mapping (AAM)备用访问映射
- SharePoint 2010 站点允许匿名访问
- Sharepoint 2010:基于当前用户判断访问列表项目的权限 --Determine access to SPListItem based on a Current User
- SharePoint 开启网站匿名访问图文详解
- SharePoint设置匿名访问【转载】