Симптоми
След като приложите Microsoft Internet Security и Acceleration (ISA) Server Service Pack 1 (SP1) или ако използвате Microsoft Forefront Threat Management Gateway (TMG) 2010, можете да забележите, че функцията "промяна на паролата" не работи според очакванията. Например в настройките на Active Directory, разрешите настройката "Потребителят трябва да смени паролата при следващото влизане" за определен потребителски акаунт. Обаче когато потребителят се опитва да влезете чрез удостоверяване, базирано на формуляри (FBA), когато функцията "промяна на паролата" е включена в ISA Server или TMG сървър, потребителят не се автоматично пренасочва към формуляр, който се използва за промяна на паролата.
Причина
Този проблем възниква, когато FBA се използва заедно с достъп до протокол Directory (LDAP). В ISA Server 2006 SP1 поведението по подразбиране е променен, когато използвате FBA заедно LDAP. Тази промяна е направена за предпазване от атаки на удостоверяване. За повече информация посетете раздела "Промени в Service Pack 1" на следния уеб сайта Microsoft TechNet:
Решение
За да разрешите този проблем, изпълнете следните стъпки:
-
Инсталиране на пакета с актуални корекции, който е описан в следната статия от базата знания на Microsoft:
959357 Описание на пакета с актуални корекции ISA Server 2006: 29 октомври 2008 г.Имайте предвид, че първата стъпка не е приложима за Microsoft Threat Management Gateway (TMG) сървър. Актуалната корекция е включена в продукта.
-
Стартирайте Notepad.
-
Поставете следния скрипт в Notepad файла.
' -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-' -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-' This code is Copyright (c) 2007 Microsoft Corporation. '' All rights reserved.'' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF' ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO' THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A' PARTICULAR PURPOSE.'' IN NO EVENT SHALL MICROSOFT AND/OR ITS RESPECTIVE SUPPLIERS BE' LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY' DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,' WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS' ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE' OF THIS CODE OR INFORMATION.'' -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-If Not WScript.Arguments.Named.Exists("WebListener") Then WScript.Echo "WebListener not defined" WScript.Quit(1)End IfSet fpcRoot = CreateObject("FPC.Root")Set fpcArray = fpcRoot.GetContainingArray()Set fpcWebListener = fpcArray.RuleElements.WebListeners(WScript.Arguments.Named("WebListener"))Set fpcWebListenerVps = fpcWebListener.VendorParametersSetsOn Error Resume NextSet fpcCookieAuthVps = fpcWebListenerVps.Item("{29022EBA-B030-4839-9CA6-DD8875BC7B47}")If Err.number = 0 Then CookieAuthVpsExists = TrueElse CookieAuthVpsExists = FalseEnd IfErr.ClearOn Error GoTo 0If Not CookieAuthVpsExists Then WScript.Echo "Cookie auth VPS settings not defined, hotfix 957859 disabled"Else On Error Resume Next WScript.Echo "EnableLDAPPasswordExpiration: " & (fpcCookieAuthVps.Value("EnableLDAPPasswordExpiration") = True)End IfIf WScript.Arguments.Named.Exists("Value") Then If Not CookieAuthVpsExists Then Set fpcCookieAuthVps = fpcWebListenerVps.Add("{29022EBA-B030-4839-9CA6-DD8875BC7B47}") End If fpcCookieAuthVps.Value("EnableLDAPPasswordExpiration") = (StrComp(WScript.Arguments.Named("Value"), "True", 1) = 0) fpcArray.Save WScript.Echo "EnableLDAPPasswordExpiration set to " & (fpcCookieAuthVps.Value("EnableLDAPPasswordExpiration") = True)End If
-
.vbs разширение запишете този файл на Notepad. Например използвайте следното име да запишете този файл:
EnableHotfix957859.vbs
-
Отворете командния ред, преминете към мястото, където сте записали файла EnableHotfix957859.vbs и след това въведете следната команда:
Cscript EnableHotfix957859.vbs /webListener: < име на слушателя > /Value:trueЗабележка В тази команда сменете < име на слушателя > с действителното име на уеб слушателя.
Важно: Ако искате да премахнете корекция 959357, отворете командния ред, изберете мястото, където сте записали файла EnableHotfix957859.vbs и след това въведете следната команда: Cscript EnableHotfix957859.vbs /webListener: <слушател име > /Value:falseБележка в тази команда сменете <име на слушателя> с действителното име на уеб слушателя.
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".
Препратки
За повече информация относно терминологията за актуализация на софтуера щракнете върху следния номер на статия, за да я видите в базата данни на Microsoft:
824684 Описание на стандартната терминология, използвана за описание на софтуерните актуализации на Microsoft