By default when we create a web application in SharePoint 2013, it gets created with Claims authentication. When we migrate the content DB to 2013, it recognizes the user account only in this format i:0#.w|domain\username . Though it’s an AD account it no more recognizes the Domain\UserName format.
SharePoint assumes all users to be claim users and renders them so. Therefore, a normal windows user – “Domain\UserName” appears as “i:0#.w|Domain\UserName”. Moreover, it uses the username in this same format to check for its permissions but does not find a matching entry for the user as the database has windows users – “Domain\UserName”. So, the site will give you an access denied.
Note that the System Account will work since its “Domain\UserName” is never used and System Account is a keyword used by SharePoint for the application pool identity. Therefore, it remains unaffected.
$webApp = Get-SPWebApplication -identity "http://serverURL"
$webApp.UseClaimsAuthentication = $true
$webApp.Update()
//convert user accounts to claim format
$webApp = Get-SPWebApplication -identity "http://serverURL"
$webApp.MigrateUsers($true)
then do iisreset
http://www.winwire.com/access-denied-error-after-migrating-to-sharepoint-2013/
Since you have done everything as mention above,you might want to check if the site is using claim authentication using the following script:
$web = Get-SPWebApplication "<URL for Application>"
$web.UseClaimsAuthentication
If return false then you might need to re-run the script as shown above
If still not working try the following:
$webApp = Get-SPWebApplication http://webappurl
$webApp.Properties["portalsuperuseraccount"] = "<claimsId>
$webApp.Properties["portalsuperreaderaccount"] = <claimsId>
$webapp.Update()
If still not working, then it worth to configure object cache at Web application level:
Configure object cache settings
- Verify that you have the following administrative credentials: You must be a member of the Administrators group on the local computer to configure the object cache settings.
- Click Start, point to Administrative Tools, and then click Internet Information Services (IIS) Manager.
- In Internet Information Services (IIS) Manager, in the Connections pane, click the plus sign (+) next to the server name that contains the web application, and then click the plus sign next to Sites to view the web application or applications that have been created.
- Right-click the name of the web application for which you want to configure the disk-based cache, and then click Explore. Windows Explorer opens, with the directories for the selected web application listed.
- Right-click web.config, and then click Open.
- If the Windows dialog box appears, select Select a program from a list of installed programs, and then click OK.
- In the Open With dialog box, click Notepad, and then click OK.
- In the Web.config Notepad file, find the following line:
- To change the size of the cache, type a new number for maxSize. The size is expressed in megabytes (MB), and 100 MB is the default.
- Save the Notepad file, and then close it.
link:https://technet.microsoft.com/en-us/library/cc770229(v=office.15).aspx#object