徵兆
當您登入管理中心網站以外的 SharePoint 網站時,您會看到空白畫面。 此外,您也會遇到下列問題:
發生錯誤時,錯誤訊息不包含要求的相互關聯標識碼。
下列錯誤訊息會記錄在整合記錄系統 (ULS) 記錄檔中:
Foundation General 8nca Medium Application error when access /, Error=Exception of type 'System.ArgumentException' was thrown. Parameter name: encodedValue at Microsoft..Administration.Claims.SPClaimEncodingManager.DecodeClaimFromFormsSuffix(String encodedValue) at Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetProviderUserKey(IClaimsIdentity claimsIdentity, String encodedIdentityClaimSuffix) at Microsoft..Administration.Claims.SPClaimProviderManager.GetProviderUserKey(String encodedIdentityClaimSuffix) 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)
當您檢查 SharePoint Health Analyzer 警示時,它會指出沒有任何 SharePoint 伺服器發出令牌。 不過,您可以流覽 STS) 頁面 (安全性令牌服務。
您可以使用下列腳本來檢查 STS 是否正在產生權杖:
$farm = [Microsoft.SharePoint.Administration.SPFarm]::Local $webServiceCollection = new-object Microsoft.SharePoint.Administration.SPWebServiceCollection($farm) foreach ($service in $webServiceCollection) { foreach ($webApp in $service.WebApplications) { $firstWebApp = $webApp #Get the context $context = $firstWebApp.GetResponseUri([Microsoft.SharePoint.Administration.SPUrlZone]::Default) Write-Host "Web Application Context:" $context.AbsoluteUri #Call the token generator function $token = [Microsoft.SharePoint.SPSecurityContext]::SecurityTokenForContext($context) Write-Host "Token:" $token.InternalTokenReference Write-Host "**************************" } }
您會收到下列錯誤訊息:
Token: ************************** Web Application Context: [http://Contoso.com/](http://contoso.com/) Exception calling "SecurityTokenForContext" with "1" argument(s): "The serverwas unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults(either from ServiceBehaviorAttribute or from the< serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework SDK documentation and inspect the server trace logs."
原因
如果已在 SharePoint 伺服器上啟用美國聯邦資訊處理標準 (FIPS) ,就會發生此問題。
解決方案
若要解決此問題,請在已安裝 SharePoint Server 的電腦上遵循下列步驟來停用 FIPS:
- (secpol.msc) 啟動本機安全策略控制台。 移至 [安全性設定]> [本機原則>] [安全性選項]。
- 找出 系統密碼編譯:使用符合 FIPS 140 規範的密碼編譯演算法,包括加密、哈希和簽署演算法原則 。
- 如果已啟用原則,請以滑鼠右鍵按兩下原則,按兩下 [ 屬性],選取 [ 已停用],然後按兩下 [ 確定]。
- 開啟登入 編輯器 並找出下列登入子機碼:
HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy
- 如果 Enabled 的值為 1,請以滑鼠右鍵按兩下 [已啟用],按兩下 [修改],在 [值數據] 中輸入 0,然後按兩下 [確定]。
- 重新啟動電腦。
其他相關資訊
SharePoint Server 使用數種 Windows 加密演算法來計算不符合美國聯邦資訊處理標準 (FIPS) 140-2 密碼編譯模組安全性需求的哈希值。 這些演算法不會用於安全性用途。 它們用於內部處理。 For example, SharePoint Server uses MD5 to create hash values that are used as unique identifiers. 由於 SharePoint Server 使用這些演算法,因此程式不支援需要 FIPS 相容演算法才能進行加密和哈希的 Windows 安全策略設定。
是否仍需要協助? 請前往 Microsoft 社群。