Симптоми
Да разгледаме следния сценарий:
-
Публикуване на уеб сайт на Microsoft SharePoint чрез правило за публикуване в Microsoft Forefront Threat Management Gateway (TMG) 2010.
-
Правило за публикуване използва Kerberos ограничени делегиране (KCD).
-
Слушател уеб сайт използва удостоверяване за Windows или удостоверяване, базирано на формуляри (FBA).
-
Потребител влиза в уеб сайта на SharePoint.
В този случай компонента влезете като друг потребител не работи в уеб сайта на SharePoint.
Причина
Този проблем възниква, тъй като код за грешка.
Решение
Информация за актуализацията
Актуализация на софтуера, необходими за разрешаване на този проблем е описан в следната статия от базата знания на Microsoft (БЗ):
2498770 software Update 1 rollup 3 за Forefront Threat Management Gateway (TMG) 2010 Service Pack 1
За да разрешите този проблем, прилагането на тази актуализация и изпълнете следния скрипт на всеки член на масива.
Забележка: Този скрипт позволява публикуване на SharePoint Server (SPS), използващ FBA и удостоверяване делегиране, който използва KCD. Ако искате да разрешите SPS публикуване, който използва интегрирано удостоверяване и ако искате удостоверяване делегиране да използвате KCD, този скрипт. След това изпълнете допълнителни скрипт, който следва:Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "EnableSharepointSignIn"
Const SE_VPS_VALUE = true
Sub SetValue()
' Create the root object.
Dim root ' The FPCLib.FPC root object
Set root = CreateObject("FPC.Root")
'Declare the other objects that are needed.
Dim array ' An FPCArray object
Dim VendorSets ' An FPCVendorParametersSets collection
Dim VendorSet ' An FPCVendorParametersSet object
' Get references to the array object
' and to the network rules collection.
Set array = root.GetContainingArray
Set VendorSets = array.VendorParametersSets
On Error Resume Next
Set VendorSet = VendorSets.Item( SE_VPS_GUID )
If Err.Number <> 0 Then
Err.Clear
' Add the item.
Set VendorSet = VendorSets.Add( SE_VPS_GUID )
CheckError
WScript.Echo "New VendorSet added... " & VendorSet.Name
Else
WScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME)
End If
if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then
Err.Clear
VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE
If Err.Number <> 0 Then
CheckError
Else
VendorSets.Save false, true
CheckError
If Err.Number = 0 Then
WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"
End If
End If
Else
WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"
End If
End Sub
Sub CheckError()
If Err.Number <> 0 Then
WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
Err.Clear
End If
End Sub
SetValue
Ако искате да разрешите SPS публикуване, който използва интегрирано удостоверяване и ако искате удостоверяване делегиране да използвате KCD, и изпълнете следния скрипт:Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "UseOnlyNTLMForWindowsAuth"
Const SE_VPS_VALUE = 1
Sub SetValue()
' Create the root object.
Dim root ' The FPCLib.FPC root object
Set root = CreateObject("FPC.Root")
'Declare the other objects that are needed.
Dim array ' An FPCArray object
Dim VendorSets ' An FPCVendorParametersSets collection
Dim VendorSet ' An FPCVendorParametersSet object
' Get references to the array object
' and to the network rules collection.
Set array = root.GetContainingArray
Set VendorSets = array.VendorParametersSets
On Error Resume Next
Set VendorSet = VendorSets.Item( SE_VPS_GUID )
If Err.Number <> 0 Then
Err.Clear
' Add the item.
Set VendorSet = VendorSets.Add( SE_VPS_GUID )
CheckError
WScript.Echo "New VendorSet added... " & VendorSet.Name
Else
WScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME)
End If
if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then
Err.Clear
VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE
If Err.Number <> 0 Then
CheckError
Else
VendorSets.Save false, true
CheckError
If Err.Number = 0 Then
WScript.Echo "Done with " & SE_VPS_NAME & ", saved!"
End If
End If
Else
WScript.Echo "Done with " & SE_VPS_NAME & ", no change!"
End If
End Sub
Sub CheckError()
If Err.Number <> 0 Then
WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
Err.Clear
End If
End Sub
SetValue
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".
Допълнителна информация
За повече информация относно терминологията за актуализация на софтуера щракнете върху следния номер на статия, за да я видите в базата данни на Microsoft:
824684 описание на стандартната терминология, използвана за описание на софтуерните актуализации на Microsoft