Symptom
Du kanske märker att ”ändra lösenord”-funktionen inte fungerar som förväntat efter installation av Microsoft Internet Security and Acceleration (ISA) Server servicepack 1 (SP1) eller om du använder Microsoft Forefront Threat Management Gateway (TMG) 2010. Du kan till exempel aktivera inställningen ”användaren måste ändra lösenord vid nästa inloggning” för ett visst användarkonto i Active Directory-inställningarna. Men när användaren försöker logga in med formulärbaserad autentisering (FBA) när ”ändra lösenord”-funktionen är aktiverad i ISA Server eller Server TMG omdirigeras inte automatiskt användaren till formuläret som används för att ändra lösenordet.
Orsak
Det här problemet uppstår när du använder FBA och Lightweight Directory Access Protocol (LDAP). I ISA Server 2006 SP1 ändrades standardbeteende när du använder FBA med LDAP. Ändringen gjordes för att skydda datorn mot angrepp som autentisering. Mer information finns i avsnittet ”förändringar i servicepack 1” i följande Microsoft TechNet Web-webbplats:
Lösning
Lös problemet så här:
-
Installera snabbkorrigeringspaketet som beskrivs i följande artikel i Microsoft Knowledge Base:
959357 Beskrivning av snabbkorrigeringspaket för ISA Server 2006: 29 oktober 2008Observera att det första steget inte är tillämplig för Microsoft Threat Management Gateway (TMG)-Server. Snabbkorrigeringen ingår i produkten.
-
Starta Anteckningar.
-
Klistra in följande skript i Anteckningar-fil.
' -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-' -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-' 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
-
Spara anteckningar-filer med filnamnstillägget .vbs. Använd till exempel följande namn för att spara den här filen:
EnableHotfix957859.vbs
-
Öppna en kommandotolk och gå till platsen där du sparade filen EnableHotfix957859.vbs skriver du följande kommando:
Cscript EnableHotfix957859.vbs /webListener: < lyssnare namn > /Value:trueObs! I det här kommandot Ersätt < lyssnare namn > med det faktiska namnet på Web listener.
Viktigt: Om du vill ta bort snabbkorrigeringen 959357 öppna Kommandotolken, bläddra till den plats där du sparade filen EnableHotfix957859.vbs och sedan skriver du följande kommando: Cscript EnableHotfix957859.vbs /webListener: <lyssnare namn > /Value:falseanteckning i det här kommandot Ersätt <lyssnare namn> med det faktiska namnet på Web listener.
Status
Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet ”gäller”.
Referenser
För mer information om terminologin för programuppdateringar klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
824684 Beskrivning av standardterminologin som används för att beskriva Microsoft-programuppdateringar