SharePoint 2010升级到sharePoint 2013后,人员失去对网站的权限的原因及解决方法。The reason and solution for permission lost after the upgrading

昨天碰到了一个问题,一个网站在从SharePoint 2010升级到SharePoint 2013后,人员都不能登录了,必须重加赋权,人员才能登录,这样非常麻烦。

原因:是认证方式的问题。在SharePoint 2010中,通过管理中心新建web application的时候,就会发现提供了两种不同的认证方式,第一种是classic auth(也就是我们通俗的称为windows 认证,其实这种叫法也不全面),另一种是claim base auth。 而当时claim base的认证方式微软还没有大力推荐,所以当时新建的web application大部分还是基于最基本的windows认证。

而到了SharePoint 2013的时候,微软已经开始大力推荐claim base的认证方式,并且在新建web application的时候已经去掉了选择windows 认证的界面,而默认直接让所有的web application都采用claim base的认证方式。这也就是为什么在SharePoint中我们的用户名前面可能会有“i:0#.w|”这种符号的原因。

 

而正是以上的原因,造成了升级后人员没有权限了。因为2010的站点用的windows认证,2013的站点用的claim base的认证。当然具体是不是这个原因你分别这两个版本的SharePoint的web application一看便知。

 

解决方法:

第一种:在SharePoint 2010中将认证方式改为claim base的,然后还原到SharePoint中。(这种方法我觉得不太可取,因为要尽量保留原系统的完整性,万一失败就不好了。)

第二种方法:

1. 用命令行在SharePoint 2013的环境中新建一个以classic auth(windows 认证)为认证方式的web application.

New-SPWebApplication -name "ClassicAuthApp" -Port 100 -ApplicationPool 
"ClassicAuthAppPool" -ApplicationPoolAccount (Get-SPManagedAccount 
"<domainname>\<user>")

要注意修改上面的参数,用您自己的名字和端口。

2. 将您sharePoint 2010的站点的数据库绑定到SharePoint 2013新建的web application上面

Mount-SPContentDatabase "<ContentDb>" -DatabaseServer "<DbServer>" -WebApplication http://webappurl

3. 将SharePoint 2013还原回来的web application转化成claim base认证的方式

  

Convert-SPWebApplication -Identity <yourWebAppUrl> -To Claims 
-RetainPermissions [ -Force]


posted @ 2015-12-03 10:02  杨崇伟  阅读(1296)  评论(0编辑  收藏  举报
版权所有,转载请标明出处