Я создал настраиваемого поставщика утверждений, чтобы пользователи могли входить в SharePoint с существующего веб-сайта. При этом выдаются заявки, в том числе заявки на UPN в формате имя пользователя @ домен. Пользователь может войти в систему, пока я не включу mapToWindows
и useWindowsTokenService
в samlSecurityTokenRequirement
веб-приложения SharePoint web.config. На этом этапе я получаю стандартное сообщение об ошибке SharePoint, и в трассировке видно следующее исключение.
Exception fetching current thread user in SPUtility.CacheClaimsIdentity: Exception of type 'System.ArgumentException' was thrown.
Parameter name: identity 0.00143314303912927 0.001357
Runtime Tag(tkau) System.ArgumentException: Exception of type 'System.ArgumentException' was thrown.
Parameter name: encodedValue
at Microsoft.SharePoint.Administration.Claims.SPClaimEncodingManager.DecodeClaimFromFormsSuffix(String encodedValue)
at Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetProviderUserKey(String encodedSuffix)
at Microsoft.SharePoint.ApplicationRuntime.SPHeaderManager.AddIsapiHeaders(HttpContext context, String encodedUrl, NameValueCollection headers)
at Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PreRequestExecuteAppHandler(Object oSender, EventArgs ea)
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Я думаю, что часть олицетворения c2wts работает правильно, потому что, если я отключу учетную запись AD, представленную переданным заявлением UPN, я получаю другую ошибку «доступ запрещен», отображаемую в SharePoint при попытке войти в систему как этот пользователь.
Также в журнале SharePoint действительно отображается, что имя участника-пользователя было преобразовано в учетную запись Windows AD, потому что я получаю в журнале следующее:
Verbose ____Current User=i:DOMAINNAME\SSO_administrator 7b4eac31-d017-429c-87f2-a3100ece6797
Обновить
Похоже, что этот параметр не поддерживается в SharePoint. Однако, если я оставлю этот параметр выключенным, кажется, что отчеты Performance Point и Excel Services, встроенные в сайт SharePoint, не работают должным образом. Я получаю такие ошибки, как:
The data connection uses Windows Authentication and user credentials could not be delegated.
(Excel)$Resources:ppsma.ServerCommon, ErrorCode_DataSourceCannotGetWindowsIdentityForNonWindowsClaim;
(отчет SSRS о точках производительности)
Это можно обойти? Мне нужно, чтобы UPN пользователя был учетной записью, используемой для запроса данных SSAS, стоящих за ними, поэтому использовать фиксированные строки подключения невозможно.
[email protected]
не может быть автоматически переведен в краткую форму, поэтому я вызывал олицетворение ActiveDirectory вручную каждый раз, когда пользователь подключается к моему порталу интрасети - person Artur Mustafin   schedule 11.10.2011