[Resolu] CHANGE DE PASSWORD

Hello,



Sur des fermes MPS4 et un access web nfuse 1.7 , quand nous creer un utilisateur via l’ad l’obligeant a change de mot de passe à la prochaine connexion , quand l’user se connecte :





ERREUR: Le mot de passe spécifié n’est plus valide. Vous devez modifier votre mot de passe lors de votre prochaine connexion



une soluce ??

Je ne crois pas que nf1.7 gere les password, soit tu passe en 2.x soit tu edit ton applist.asp pour refaire un change password comme sous nfuse 1.0. Pour exemple tu peux regarder ici: http://www.doctor-citrix.com/nfuse/rubrique44.html

Nous onb l’a fait via deux pages WEB ASP ;

L’un composé du formulaire de changement et l’autre avec le code suivant :



'Vérification de l’égalité des 2 nouveaux mots de passe

if request.form(“password1”)<>request.form(“password2”) then

response.redirect "changepwd.asp?erreur=Les deux noveaux mots de passe ne correspondent pas"

end if



’Chagement du mot de passe via ADSI

domain = Request.Cookies(“NFuseData”)(“NFuse_Domain”)

user = Request.Cookies(“NFuseData”)(“NFuse_User”)

set usero=getobject(“WinNT://” & domain & “/” & user & “,user”)

on error resume next

err.clear

usero.changepassword request.form(“password”), request.form(“password1”)

set usero = nothing



’Traitement des erreurs possibles lors du changement de mot de passe

Select case err.number

case -2147024810 message = "Ancien mot de passe incorrect"

case -2147022651 message = "Le nouveau mot de passe est trop court"

case -2147022987 message = "Vous avez fait trop d’erreurs, votre compte a été verrouillé"

case else message = “Erreur n°” & err.number & "
Veuiller contacter le SVP"

end select



’En cas d’erreur, redirection vers la page précédente et affichage du message d’erreur

if err.number<>0 then

response.redirect “changepwd.asp?erreur=” & message

end if

err.clear

on error goto 0



’Encryptage du nouveau mot de passe et stockage dans une cookie

Set app = Server.CreateObject(“com.citrix.nfuse.App”)

password = app.urlEncode(Request.Form(“password1”))

nfuseSessionKey = Session(“nfuseKeyString”)

nfuseEncryptedPassword = nfuseEncrypt(password)

Response.Cookies(“NFuseData”)(“NFuse_Password”) = app.urlEncode(nfuseEncryptedPassword)

set app = nothing



Function nfuseEncrypt(strCryptThis)

Dim strChar, iKeyChar, iStringChar, i

for i = 1 to Len(strCryptThis)

iKeyChar = Asc(mid(nfuseSessionKey,i,1))

iStringChar = Asc(mid(strCryptThis,i,1))

iCryptChar = iKeyChar Xor iStringChar

strEncrypted = strEncrypted & Chr(iCryptChar)

next

nfuseEncrypt = strEncrypted

End Function



’Le mot de passe a été changé avec succès



’Redirection vers la dernière page consultée

lastfolder=application(user & “_NFuse_LastFolder”)

if len(lastfolder)>O then

response.redirect “applist.asp?” & lastfolder

else

response.redirect "groupapplis.asp"

end if

%>

c’est quand meme plus simple de mettre WI 4.0 non ?

ok merci a tous, du coup on n’est passé à WI 4.0 :slight_smile: