IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Application Mot de passe


Sujet :

Langage Perl

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Application Mot de passe
    bonjour,

    Voila je suis nouveau en langage perl, et je n'y connais rien du tout! et actuellement je suis en stage et le stagiaire qui était avant moi à crée une application pour réinitialiser les mot de passe des utilisateurs. Cette application permettait de dire que le mot de passe=nom d'utilisateur (ex, utilisateur toto, mot de passe=toto) Maintenant on me demande à moi de faire en sorte que cette application ne fasse pas mot de passe=utilisateur mais qu'au moment de modifier le mot de passe on puisse y mettre ce que l'on veut.

    Je ne sais pas du tout comment m'y prendre est ce que quelqu'un pourrait m'aider svp ???


    Il y a plusieurs fichiers pour cette application voila le contenu du fichier login2.cgi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    #!c:/perl/bin/perl.exe
    # ======================================================================
    #
    # Perl Source File
    #
    # NAME: reset.cgi
    #
    # DATE  : 23/03/2004
    #
    # VERSION : 1.4
    #
    # HISTORY:
    # 1.4 - Jean Praloran	- 31/08/2005:	- add unlocking account when account locked
    # 1.4	- Jean Praloran	- 23/08/2005:	- add user must change password at next logon
    # 1.3	- Jean Praloran - 01/08/2005:	- script modified for givenchy domain
    # 1.2   - JMD 		- 23/12/2004:  	- add "ChampsElysees" domain to manage
    # 1.1   - SFO 		- 24/05/2004:  	- force usernames to uppercases
    # 1.0	- SFO 		- 10/05/2004: 	- add loging failure and success for reset
    #			 		- add exclude list in the ResetPassword function
    #					- add loging failure and success for authentication
    # ======================================================================
    use strict;
    use warnings;
    use CGI qw(:standard);
    use Win32::OLE 'in';
    use Win32::OLE::Const 'Microsoft ActiveX Data Objects';
     
    my $cgi = new CGI;
    my $state = 'C:\WINDOWS\Temp\state.msg';
     
     
    # ======================================================================
    # 							MAIN PROGRAM
    # ======================================================================
    print $cgi->header();
    Submit_auth();
     
    # ======================================================================
    # 							PROCEDURES
    # ======================================================================
     
    # Submit on logon form
    sub Submit_auth {
    		my $login=$cgi->param('auth_login');
    		my $password=$cgi->param('auth_password');
    		my $domain=$cgi->param('auth_domain');
    		my $auth = AuthenticateUser($domain, $login, $password);
    		my $delegation = IsDelegation($login,$domain);
    		#my $delegation = 0;
    		if (!$auth and !$delegation)
    		{
    			Save_state();
    		}
    		else
    		{
    			print $cgi->start_html("Password reset failed"),h2('
    			<script type="text/javascript" langage="JavaScript">
    			parent.location = "http://10.114.1.25:8080/index.php?failed=1";
    			</script>
    			');
    		}
    }
     
    # Authenticating NT User
    sub AuthenticateUser {
      		my ($strDomain,$strUserID,$strUserPassword) = @_;
            my $strADsPath      = 'WinNT://';
    		$strADsPath = $strADsPath .  $strDomain;
            my $strAttributeName = "userPrincipalName";
            my $strAttributeValue = $strUserID;
            my $objNameSpace = Win32::OLE->GetObject ('WinNT:') 
                    or die ("Cannot create LDAP object");
     
    		$strUserID = $strDomain . "\\" . $strUserID;
            my $objObjSec = $objNameSpace->OpenDSObject($strADsPath , $strUserID, $strUserPassword, 0);
     
    	my $result = 0;
    	my $resulterr = Win32::OLE->LastError();
     
        if ($resulterr==0)
        {
    		$result = 0;
        	$objObjSec->Close;
        } else {
    		$result = 1;
        }
     
        $objNameSpace->Close;
        return $result;
    }
     
    # Check if user is in Delegation group on KEEPALL
    sub IsDelegation {
    	my ($strUser,$strDomain) = @_;
    	$strUser = uc($strUser);
    	my $strGroup = "FGA_EDS";
    	my $deleg = 1;
    	my $objGroup = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strGroup);
    	foreach my $objMember (in $objGroup->Members)
    	{
       		$deleg = 0 if ($objMember->Name eq $strUser);
    	}
     
    	return $deleg;
    }
     
     
    # Saving the CGI state
    sub Save_state {
    	my $handle = "SAVE";
    	if (open(SAVE,">$state"))
    	{
    		$cgi->save($handle);
    		close(SAVE);
    		print $cgi->start_html("Password reset failed"),h2('
    		<script type="text/javascript" langage="JavaScript">
    		parent.location = "http://10.114.1.25:8080/index.php?log=1";
    		</script>
    		');
    	}
    	else
    	{
    		print $cgi->font({-color=>'red'},"Failed to save CGI state: $!");
    	}
    }

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    merci de mettre ton code entre balise code la prochaine fois

  3. #3
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    C'est pas le bon script....

    --
    Jedaï

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 1
    Points
    1
    Par défaut RE Apllication mot de passe
    voila je vous met les fichiers contenus dans cette application, personnellement je m'en sors pas avec tout ça, si y en a parmi vous qui pourrait m'aider ça serait vraiment sympa


    fichier file.cgi
    fichier login2.cgi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    #!c:/perl/bin/perl.exe
    # ======================================================================
    #
    # Perl Source File
    #
    # NAME: reset.cgi
    #
    # DATE  : 23/03/2004
    #
    # VERSION : 1.4
    #
    # HISTORY:
    # 1.4 - Jean Praloran	- 31/08/2005:	- add unlocking account when account locked
    # 1.4	- Jean Praloran	- 23/08/2005:	- add user must change password at next logon
    # 1.3	- Jean Praloran - 01/08/2005:	- script modified for givenchy domain
    # 1.2   - JMD 		- 23/12/2004:  	- add "ChampsElysees" domain to manage
    # 1.1   - SFO 		- 24/05/2004:  	- force usernames to uppercases
    # 1.0	- SFO 		- 10/05/2004: 	- add loging failure and success for reset
    #			 		- add exclude list in the ResetPassword function
    #					- add loging failure and success for authentication
    # ======================================================================
    use strict;
    use warnings;
    use CGI qw(:standard);
    use Win32::OLE 'in';
    use Win32::OLE::Const 'Microsoft ActiveX Data Objects';
     
    my $cgi = new CGI;
    my $state = 'C:\WINDOWS\Temp\state.msg';
     
     
    # ======================================================================
    # 							MAIN PROGRAM
    # ======================================================================
    print $cgi->header();
    Submit_auth();
     
    # ======================================================================
    # 							PROCEDURES
    # ======================================================================
     
    # Submit on logon form
    sub Submit_auth {
    		my $login=$cgi->param('auth_login');
    		my $password=$cgi->param('auth_password');
    		my $domain=$cgi->param('auth_domain');
    		my $auth = AuthenticateUser($domain, $login, $password);
    		my $delegation = IsDelegation($login,$domain);
    		#my $delegation = 0;
    		if (!$auth and !$delegation)
    		{
    			Save_state();
    		}
    		else
    		{
    			print $cgi->start_html("Password reset failed"),h2('
    			<script type="text/javascript" langage="JavaScript">
    			parent.location = "http://10.114.1.25:8080/index.php?failed=1";
    			</script>
    			');
    		}
    }
     
    # Authenticating NT User
    sub AuthenticateUser {
      		my ($strDomain,$strUserID,$strUserPassword) = @_;
            my $strADsPath      = 'WinNT://';
    		$strADsPath = $strADsPath .  $strDomain;
            my $strAttributeName = "userPrincipalName";
            my $strAttributeValue = $strUserID;
            my $objNameSpace = Win32::OLE->GetObject ('WinNT:') 
                    or die ("Cannot create LDAP object");
     
    		$strUserID = $strDomain . "\\" . $strUserID;
            my $objObjSec = $objNameSpace->OpenDSObject($strADsPath , $strUserID, $strUserPassword, 0);
     
    	my $result = 0;
    	my $resulterr = Win32::OLE->LastError();
     
        if ($resulterr==0)
        {
    		$result = 0;
        	$objObjSec->Close;
        } else {
    		$result = 1;
        }
     
        $objNameSpace->Close;
        return $result;
    }
     
    # Check if user is in Delegation group on KEEPALL
    sub IsDelegation {
    	my ($strUser,$strDomain) = @_;
    	$strUser = uc($strUser);
    	my $strGroup = "FGA_EDS";
    	my $deleg = 1;
    	my $objGroup = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strGroup);
    	foreach my $objMember (in $objGroup->Members)
    	{
       		$deleg = 0 if ($objMember->Name eq $strUser);
    	}
     
    	return $deleg;
    }
     
     
    # Saving the CGI state
    sub Save_state {
    	my $handle = "SAVE";
    	if (open(SAVE,">$state"))
    	{
    		$cgi->save($handle);
    		close(SAVE);
    		print $cgi->start_html("Password reset failed"),h2('
    		<script type="text/javascript" langage="JavaScript">
    		parent.location = "http://10.114.1.25:8080/index.php?log=1";
    		</script>
    		');
    	}
    	else
    	{
    		print $cgi->font({-color=>'red'},"Failed to save CGI state: $!");
    	}
    }

    fichier login2old.cgi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    #!c:/perl/bin/perl.exe
    # ======================================================================
    #
    # Perl Source File
    #
    # NAME: reset.cgi
    #
    # DATE  : 23/03/2004
    #
    # VERSION : 1.4
    #
    # HISTORY:
    # 1.4 - Jean Praloran	- 31/08/2005:	- add unlocking account when account locked
    # 1.4	- Jean Praloran	- 23/08/2005:	- add user must change password at next logon
    # 1.3	- Jean Praloran - 01/08/2005:	- script modified for givenchy domain
    # 1.2   - JMD 		- 23/12/2004:  	- add "ChampsElysees" domain to manage
    # 1.1   - SFO 		- 24/05/2004:  	- force usernames to uppercases
    # 1.0	- SFO 		- 10/05/2004: 	- add loging failure and success for reset
    #			 		- add exclude list in the ResetPassword function
    #					- add loging failure and success for authentication
    # ======================================================================
    use strict;
    use warnings;
    use CGI qw(:standard);
    use Win32::OLE 'in';
    use Win32::OLE::Const 'Microsoft ActiveX Data Objects';
     
    my $cgi = new CGI;
    my $state = 'C:\WINDOWS\Temp\state.msg';
     
     
    # ======================================================================
    # 							MAIN PROGRAM
    # ======================================================================
    print $cgi->header();
    Submit_auth();
     
    # ======================================================================
    # 							PROCEDURES
    # ======================================================================
     
    # Submit on logon form
    sub Submit_auth {
    		my $login=$cgi->param('auth_login');
    		my $password=$cgi->param('auth_password');
    		my $domain=$cgi->param('auth_domain');
    		my $auth = AuthenticateUser($domain, $login, $password);
    		#my $delegation = IsDelegation($login,$domain);
    		my $delegation = 0;
    		if (!$auth and !$delegation)
    		{
    			Save_state();
    		}
    		else
    		{
    			print $cgi->start_html("Password reset failed"),h2('
    			<script type="text/javascript" langage="JavaScript">
    			parent.location = "http://10.114.1.25:8080/index.php?failed=1";
    			</script>
    			');
    		}
    }
     
    # Authenticating NT User
    sub AuthenticateUser {
      		my ($strDomain,$strUserID,$strUserPassword) = @_;
            my $strADsPath      = 'WinNT://';
    		$strADsPath = $strADsPath .  $strDomain;
            my $strAttributeName = "userPrincipalName";
            my $strAttributeValue = $strUserID;
            my $objNameSpace = Win32::OLE->GetObject ('WinNT:') 
                    or die ("Cannot create LDAP object");
     
    		$strUserID = $strDomain . "\\" . $strUserID;
            my $objObjSec = $objNameSpace->OpenDSObject($strADsPath , $strUserID, $strUserPassword, 0);
     
    	my $result = 0;
    	my $resulterr = Win32::OLE->LastError();
     
        if ($resulterr==0)
        {
    		$result = 0;
        	$objObjSec->Close;
        } else {
    		$result = 1;
        }
     
        $objNameSpace->Close;
        return $result;
    }
     
    # Check if user is in Delegation group on KEEPALL
    sub IsDelegation {
    	my ($strUser,$strDomain) = @_;
    	$strUser = uc($strUser);
    	my $strGroup = "FGA_EDS";
    	my $deleg = 1;
    	my $objGroup = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strGroup);
    	foreach my $objMember (in $objGroup->Members)
    	{
       		$deleg = 0 if ($objMember->Name eq $strUser);
    	}
     
    	return $deleg;
    }
     
     
    # Saving the CGI state
    sub Save_state {
    	my $handle = "SAVE";
    	if (open(SAVE,">$state"))
    	{
    		$cgi->save($handle);
    		close(SAVE);
    		print $cgi->start_html("Password reset failed"),h2('
    		<script type="text/javascript" langage="JavaScript">
    		parent.location = "http://10.114.1.25:8080/index.php?log=1";
    		</script>
    		');
    	}
    	else
    	{
    		print $cgi->font({-color=>'red'},"Failed to save CGI state: $!");
    	}
    }

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 1
    Points
    1
    Par défaut re application mot de passe suite
    voila les autres fichiers


    Fichier resetpwd.cgi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    #!c:/perl/bin/perl.exe
    # ======================================================================
    #
    # Perl Source File
    #
    # NAME: reset.cgi
    #
    # DATE  : 23/03/2004
    #
    # VERSION : 1.4
    #
    # ======================================================================
    use strict;
    use warnings;
    use CGI qw(:standard);
    use Win32::OLE 'in';
    use Win32::OLE::Const 'Microsoft ActiveX Data Objects';
     
    my $cgi = new CGI;
    my $resacc;
    my $resdom;
    my $error;
     
    my $entry = 'reset_exclude.param';
    open (ENTRY,"<$entry") || die "Erreur d'ouverture du fichier $entry , erreur: $!";
    my @list = <ENTRY>;
    close(ENTRY);
     
    # ======================================================================
    # 							MAIN PROGRAM
    # ======================================================================
    print $cgi->header();
    Submit_reset();
     
     
    # ======================================================================
    # 							PROCEDURES
    # ======================================================================
     
    # Submit on reset password form
    sub Submit_reset {
    		$resacc = $cgi->param('login');
    		$resdom = "givenchy.lvmh";
    		my $reset = ResetPassword($resacc,$resdom);
    		if ( $reset == 0 )
    		{
    			change_password($resacc, $resdom);
    			OpeLogSuccess($resacc);
    			print $cgi->start_html("Password reset failed"),h2('
    			<script type="text/javascript" langage="JavaScript">
    			parent.location = "http://10.114.1.25:8080/index.php?succeed=1";
    			</script>
    			');
    		}
    		else
    		{
    			OpeLogFailure($resacc);
    			print $cgi->start_html("Password reset failed"),h2('
    			<script type="text/javascript" langage="JavaScript">
    			parent.location = "http://10.114.1.25:8080/index.php?succeed=2";
    			</script>
    			');
    		}
    }
     
    # Reset NT account password
    sub ResetPassword {
    	my ($strUser, $strDomain) = @_;
    	$strUser = lc($strUser);
    	my $strNewPasswd = lc($strUser);
    	my $result = 0;
    	my $exclude = 0;
    	foreach my $x (@list)
    	{
    		chomp($x);
    		$exclude = 1 if ($strUser eq $x);
    	}
    	my $objUser = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strUser) or $result = 1;
     
    # New code
     
    	if ( $result == 1 )
    	{
     
    		print $cgi->start_html("OLE Get Object Usr failed"),h2('
    		<script type="text/javascript" langage="JavaScript">
    		parent.location = "http://10.114.1.25:8080/index.php?succeed=3";
    		</script>
    		');
    #		die "error getting info";
    	}
     
    # New code
     
    	if ( Win32::OLE->LastError() == 0 and $exclude == 0)
    	{
    		if ($objUser->{IsAccountLocked} == 1)
    			{
    				$objUser->{IsAccountLocked} = 0;
    				$objUser->SetInfo();
    			}
    		$objUser->SetPassword($strNewPasswd);
    		if ( Win32::OLE->LastError() == 0 )
    		{
    			$result = 0;
    			$objUser->Close;
    		} 
    		else
    		{
    			$result = 1;
    # New code
    			print $cgi->start_html("OLE Set Object Usr failed"),h2('
    			<script type="text/javascript" langage="JavaScript">
    			parent.location = "http://10.114.1.25:8080/index.php?succeed=4";
    			</script>
    			');
    			my $error = Win32::OLE->LastError();
    #			die "error setting info";
    # New code
    		}
    	} 
    	else
    	{
    		$result = 1;
    	}
    	return $result;
    }
     
     
    # User must change password at next logon
    sub change_password()
    {
     	my ($strUser, $strDomain) = @_;
    	$strUser = lc($strUser);
    	my $objUser = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strUser);
    	if ( Win32::OLE->LastError() == 0)
    		{
    		 	$objUser->{PasswordExpired} = 1;
    			$objUser->SetInfo();
    		}
    	else
    		{
    			print "error\n";
    		}
    	$objUser->Close;
    }
     
     
    # Log all operation in a file if success
    sub OpeLogSuccess {
    	my ($user) = @_;
    	my $file = 'pwd_reset.log';
     
    	my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
    	$mon+=1;
    	$year+=1900;
    	my $date = "$mday/$mon/$year";
     
    	my $host = `hostname`;
    	chomp($host);
     
     
    	my $line = "$date - helpdesk reseted password for user $user @ $hour:$min:$sec";
    	open(OPELOG,">>$file") or die "Can't open $file for update: $!";
    	print OPELOG "$line\n";
    	close(OPELOG);
    }
     
    # Log all operation in a file if failure
    sub OpeLogFailure {
    	my ($user) = @_;
    	my $file = 'pwd_reset.log';
     
    	my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
    	$mon+=1;
    	$year+=1900;
    	my $date = "$mday/$mon/$year";
     
    	my $host = `hostname`;
    	chomp($host);
     
     
    	my $line = "$date - helpdesk reset password failed for user $user @ $hour:$min:$sec";
    	open(OPELOG,">>$file") or die "Can't open $file for update: $!";
    	print OPELOG "$line\n";
    	print OPELOG "$error\n";
    	close(OPELOG);
    }

    fichier resetpwdold.cgi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    #!c:/perl/bin/perl.exe
    # ======================================================================
    #
    # Perl Source File
    #
    # NAME: reset.cgi
    #
    # DATE  : 23/03/2004
    #
    # VERSION : 1.4
    #======================================================================
    use strict;
    use warnings;
    use CGI qw(:standard);
    use Win32::OLE 'in';
    use Win32::OLE::Const 'Microsoft ActiveX Data Objects';
     
    my $cgi = new CGI;
    my $resacc;
    my $resdom;
     
    my $entry = 'reset_exclude.param';
    open (ENTRY,"<$entry") || die "Erreur d'ouverture du fichier $entry , erreur: $!";
    my @list = <ENTRY>;
    close(ENTRY);
     
    # ======================================================================
    # 							MAIN PROGRAM
    # ======================================================================
    print $cgi->header();
    Submit_reset();
     
     
    # ======================================================================
    # 							PROCEDURES
    # ======================================================================
     
    # Submit on reset password form
    sub Submit_reset {
    		$resacc = $cgi->param('login');
    		$resdom = "givenchy.lvmh";
    		my $reset = ResetPassword($resacc,$resdom);
    		if ( $reset == 0 )
    		{
    			change_password($resacc, $resdom);
    			OpeLogSuccess($resacc);
    			print $cgi->start_html("Password reset failed"),h2('
    			<script type="text/javascript" langage="JavaScript">
    			parent.location = "http://10.114.1.25:8080/index.php?succeed=1";
    			</script>
    			');
    		}
    		else
    		{
    			OpeLogFailure($resacc);
    			print $cgi->start_html("Password reset failed"),h2('
    			<script type="text/javascript" langage="JavaScript">
    			parent.location = "http://10.114.1.25:8080/index.php?succeed=2";
    			</script>
    			');
    		}
    }
     
    # Reset NT account password
    sub ResetPassword {
    	my ($strUser, $strDomain) = @_;
    	$strUser = lc($strUser);
    	my $strNewPasswd = lc($strUser);
    	my $result = 0;
    	my $exclude = 0;
    	foreach my $x (@list)
    	{
    		chomp($x);
    		$exclude = 1 if ($strUser eq $x);
    	}
    	my $objUser = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strUser) or $result = 1;
    	if ( Win32::OLE->LastError() == 0 and $exclude == 0)
    	{
    		if ($objUser->{IsAccountLocked} == 1)
    			{
    				$objUser->{IsAccountLocked} = 0;
    				$objUser->SetInfo();
    			}
    		$objUser->SetPassword($strNewPasswd);
    		if ( Win32::OLE->LastError() == 0 )
    		{
    			$result = 0;
    			$objUser->Close;
    		} 
    		else
    		{
    			$result = 1;
    		}
    	} 
    	else
    	{
    		$result = 1;
    	}
    	return $result;
    }
     
     
    # User must change password at next logon
    sub change_password()
    {
     	my ($strUser, $strDomain) = @_;
    	$strUser = lc($strUser);
    	my $objUser = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strUser);
    	if ( Win32::OLE->LastError() == 0)
    		{
    		 	$objUser->{PasswordExpired} = 1;
    			$objUser->SetInfo();
    		}
    	else
    		{
    			print "error\n";
    		}
    	$objUser->Close;
    }
     
     
    # Log all operation in a file if success
    sub OpeLogSuccess {
    	my ($user) = @_;
    	my $file = 'pwd_reset.log';
     
    	my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
    	$mon+=1;
    	$year+=1900;
    	my $date = "$mday/$mon/$year";
     
    	my $host = `hostname`;
    	chomp($host);
     
     
    	my $line = "$date - helpdesk reseted password for user $user @ $hour:$min:$sec";
    	open(OPELOG,">>$file") or die "Can't open $file for update: $!";
    	print OPELOG "$line\n";
    	close(OPELOG);
    }
     
    # Log all operation in a file if failure
    sub OpeLogFailure {
    	my ($user) = @_;
    	my $file = 'pwd_reset.log';
     
    	my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
    	$mon+=1;
    	$year+=1900;
    	my $date = "$mday/$mon/$year";
     
    	my $host = `hostname`;
    	chomp($host);
     
     
    	my $line = "$date - helpdesk reset password failed for user $user @ $hour:$min:$sec";
    	open(OPELOG,">>$file") or die "Can't open $file for update: $!";
    	print OPELOG "$line\n";
    	close(OPELOG);
    }

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 1
    Points
    1
    Par défaut RE application mot de passe
    fichier login3.cgi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    #!c:/perl/bin/perl.exe
    # ======================================================================
    #
    # Perl Source File
    #
    # NAME: reset.cgi
    #
    # DATE  : 23/03/2004
    #
    # VERSION : 1.4
    #
    # ======================================================================
    use strict;
    use warnings;
    use Win32::OLE 'in';
    use Win32::OLE::Const 'Microsoft ActiveX Data Objects';
     
     
     
    my $entry = 'reset_exclude.param';
    open (ENTRY,"<$entry") || die "Erreur d'ouverture du fichier $entry , erreur: $!";
    my @list = <ENTRY>;
    close(ENTRY);
     
    # ======================================================================
    # 							MAIN PROGRAM
    Submit_auth();
     
    # ======================================================================
    # 							PROCEDURES
    # ======================================================================
     
    # Submit on logon form
    sub Submit_auth {
    my $login;
    my $password;
    my $domain;
    my $nom;
    my $valeur;
    my $i;
    my $in;
    			$in = <STDIN>;
    			chop($in);
    			chop($in);
    			$i = 0;
    			@liste = split(/&/,$in);
    			foreach(@liste) 
    			{
     			($nom,$valeur)= split(/=/, $_);
     			$nom  =~  s/%(..)/pack("c",hex($1))/ge;
     			$valeur =~  s/%(..)/pack("c",hex($1))/ge;
    			if ($i eq 0)
    				{
    				$domain = $valeur;
    				}
    			else if ($i eq 1)
    				{
    				$login = $valeur;
    				}
    			else
    				{
    				$password = $valeur;
    				}
    			$i++;
    			}
    		my $auth = AuthenticateUser($domain, $login, $password);
    		my $delegation = IsDelegation($login,$domain);
    		if (!$auth and !$delegation)
    		{
    			print "Location: http://www.google.fr\n\n";
    		}
    		else
    		{
    			print "Failed.";
    		}
    }
     
    # Authenticating NT User
    sub AuthenticateUser {
      		my ($strDomain,$strUserID,$strUserPassword) = @_;
            my $strADsPath      = 'WinNT://';
    		$strADsPath = $strADsPath .  $strDomain;
            my $strAttributeName = "userPrincipalName";
            my $strAttributeValue = $strUserID;
            my $objNameSpace = Win32::OLE->GetObject ('WinNT:') 
                    or die ("Cannot create LDAP object");
     
    		$strUserID = $strDomain . "\\" . $strUserID;
            my $objObjSec = $objNameSpace->OpenDSObject($strADsPath , $strUserID, $strUserPassword, 0);
     
    	my $result = 0;
    	my $resulterr = Win32::OLE->LastError();
     
        if ($resulterr==0)
        {
    		$result = 0;
        	$objObjSec->Close;
        } else {
    		$result = 1;
        }
     
        $objNameSpace->Close;
        return $result;
    }
     
    # Check if user is in Delegation group on KEEPALL
    sub IsDelegation {
    	my ($strUser,$strDomain) = @_;
    	$strUser = uc($strUser);
    	my $strGroup = "FGA_EDS";
    	my $deleg = 1;
    	my $objGroup = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strGroup);
    	foreach my $objMember (in $objGroup->Members)
    	{
       		$deleg = 0 if ($objMember->Name eq $strUser);
    	}
     
    	return $deleg;
    }

    fichier printenv.pl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/usr/local/bin/perl
    ##
    ##  printenv -- demo CGI program which just prints its environment
    ##
     
    print "Content-type: text/plain\n\n";
    foreach $var (sort(keys(%ENV))) {
        $val = $ENV{$var};
        $val =~ s|\n|\\n|g;
        $val =~ s|"|\\"|g;
        print "${var}=\"${val}\"\n";
    }
    fichier reset_exclude.param

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    administrateur
    ostral
    helpdesk

    fichier resetold.cgi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    #!c:/perl/bin/perl.exe
    # ======================================================================
    #
    # Perl Source File
    #
    # NAME: reset.cgi
    #
    # ======================================================================
     
     
    use strict;
    use warnings;
    use CGI qw(:standard);
    use Win32::OLE 'in';
    use Win32::OLE::Const 'Microsoft ActiveX Data Objects';
     
    my $cgi = new CGI;
    my $method = "POST";
    my $state = 'C:\WINDOWS\Temp\state.msg';
    my $resacc;
    my $resdom;
     
    my $entry = 'reset_exclude.param';
    open (ENTRY,"<$entry") || die "Erreur d'ouverture du fichier $entry , erreur: $!";
    my @list = <ENTRY>;
    close(ENTRY);
     
     
    # ======================================================================
    # 							MAIN PROGRAM
    # ======================================================================
     
    print $cgi->header();
    my $hidden = $cgi->param('hid_field');
    if ( $hidden eq 'reset' )
    {
    	Submit_reset();
    } 
    else
    {
    	Submit_auth();
    }
    print $cgi->end_html();
     
     
    # ======================================================================
    # 							PROCEDURES
    # ======================================================================
     
    # Form generation for authentication
    sub AuthForm {
    return	$cgi->start_form(-method=>$method),
    		$cgi->h2("Authentication:"),
    		$cgi->start_table({-border => '1'}),
    		$cgi->hidden('hid_field','authenticate'),
            $cgi->Tr($cgi->th({-align => 'left'},'Login'), $cgi->td($cgi->textfield('auth_login'))),
            $cgi->Tr($cgi->th({-align => 'left'},'Password'), $cgi->td($cgi->password_field('auth_password'))),
            $cgi->Tr($cgi->th({-align => 'left'},'Domain'), $cgi->td($cgi->popup_menu('auth_domain',
            'GIVENCHY_COUT',
            'SRV_COUTURE'))),
    		$cgi->end_table(),
    		$cgi->p(submit('submit','Logon')),
    		$cgi->end_form;
    }
     
    # Form generation for resetting password
    sub ResetForm {
    return
    		$cgi->start_form(-method=>$method),
    		$cgi->h2("Account to reset:"),
    		$cgi->h3("The new password will be the account name in minus."),
    		$cgi->start_table({-border => '1'}),
    		$cgi->hidden(-name=>'hid_field',-value=>'reset',-override=>1),
            $cgi->Tr($cgi->th({-align => 'left'},'Account'), $cgi->td($cgi->textfield('res_account'))),
            $cgi->Tr($cgi->th({-align => 'left'},'Domain'), $cgi->td($cgi->popup_menu('res_domain',
            		'GIVENCHY_COUT' , 'SRV_COUTURE'))),
    		$cgi->end_table(),
    		$cgi->p(submit('submit','Reset password')),
    		$cgi->end_form;
    }
     
    # Submit on reset password form
    sub Submit_reset {
    	if ($cgi->param('res_account') and $cgi->param('res_domain'))
    	{
    		my $res_account = $cgi->param('res_account');
    		my $res_domain = $cgi->param('res_domain');
    		$resacc = $res_account;
    		$resdom = $res_domain;
    		my $reset = ResetPassword($res_account,$res_domain);
    		if ( $reset == 0 )
    		{
    			change_password($res_account, $res_domain);
    			print $cgi->start_html("Password reseted"),h2("Password reseted for $res_account and user must change it at next logon\n");
    			OpeLogSuccess();
    		}
    		else
    		{
    			print $cgi->start_html("Password reset failed"),h2("Password reset failed for $res_account\n");
    			OpeLogFailure();
    		}
    	}
    	else
    	{
    		print ResetForm();
    	}
    }
     
    # Submit on logon form
    sub Submit_auth {
    	if ($cgi->param('auth_domain') and $cgi->param('auth_login') and $cgi->param('auth_password'))
    	{
     
    		my $login=$cgi->param('auth_login');
    		my $password=$cgi->param('auth_password');
    		my $domain=$cgi->param('auth_domain');
    		my $auth = AuthenticateUser($domain, $login, $password);
    		my $delegation = IsDelegation($login,$domain);
    		if (!$auth and !$delegation)
    		{
    			Save_state();
    		}
    		else
    		{
    			print $cgi->start_html("Authentication failed"),h2("Authentication failed for $login.\nTry again.");
    		}
    	}
    	else
    	{
    		print AuthForm();
    	}
    }
     
    # Authenticating NT User
    sub AuthenticateUser {
      		my ($strDomain,$strUserID,$strUserPassword) = @_;
            my $strADsPath      = 'WinNT://';
    		$strADsPath = $strADsPath .  $strDomain;
            my $strAttributeName = "userPrincipalName";
            my $strAttributeValue = $strUserID;
            my $objNameSpace = Win32::OLE->GetObject ('WinNT:') 
                    or die ("Cannot create LDAP object");
     
    		$strUserID = $strDomain . "\\" . $strUserID;
            my $objObjSec = $objNameSpace->OpenDSObject($strADsPath , $strUserID, $strUserPassword, 0);
     
    	my $result = 0;
    	my $resulterr = Win32::OLE->LastError();
     
        if ($resulterr==0)
        {
    		$result = 0;
        	$objObjSec->Close;
        } else {
    		$result = 1;
        }
     
        $objNameSpace->Close;
        return $result;
    }
     
     
    # User must change password at next logon
    sub change_password()
    {
     	my ($strUser, $strDomain) = @_;
    	$strUser = lc($strUser);
    	my $objUser = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strUser);
    	if ( Win32::OLE->LastError() == 0)
    		{
    		 	$objUser->{PasswordExpired} = 1;
    			$objUser->SetInfo();
    		}
    	else
    		{
    			print "error\n";
    		}
    	$objUser->Close;
    }
     
    # Reset NT account password
    sub ResetPassword {
    	my ($strUser, $strDomain) = @_;
    	$strUser = lc($strUser);
    	my $strNewPasswd = lc($strUser);
    	my $result = 0;
    	my $exclude = 0;
    	foreach my $x (@list)
    	{
    		chomp($x);
    		$exclude = 1 if ($strUser eq $x);
    	}
    	my $objUser = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strUser) or $result = 1;
    	if ( Win32::OLE->LastError() == 0 and $exclude == 0)
    	{
    		if ($objUser->{IsAccountLocked} == 1)
    			{
    				$objUser->{IsAccountLocked} = 0;
    				$objUser->SetInfo();
    			}
    		$objUser->SetPassword($strNewPasswd);
    		if ( Win32::OLE->LastError() == 0 )
    		{
    			$result = 0;
    			$objUser->Close;
    		} 
    		else
    		{
    			$result = 1;
    		}
    	} 
    	else
    	{
    		$result = 1;
    	}
    	return $result;
    }
     
    # Check if user is in Delegation group on KEEPALL
    sub IsDelegation {
    	my ($strUser,$strDomain) = @_;
    	$strUser = uc($strUser);
    	my $strGroup = "FGA_EDS";
    	my $deleg = 1;
    	my $objGroup = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strGroup);
    	foreach my $objMember (in $objGroup->Members)
    	{
       		$deleg = 0 if ($objMember->Name eq $strUser);
    	}
     
    	return $deleg;
    }
     
    # Saving the CGI state
    sub Save_state {
    	my $handle = "SAVE";
    	if (open(SAVE,">$state"))
    	{
    		$cgi->save($handle);
    		close(SAVE);
    		Submit_reset();
    	}
    	else
    	{
    		print $cgi->font({-color=>'red'},"Failed to save CGI state: $!");
    	}
    }
     
    # Log all operation in a file if success
    sub OpeLogSuccess {
    	my $file = 'pwd_reset.log';
     
    	my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
    	$mon+=1;
    	$year+=1900;
    	my $date = "$mday/$mon/$year";
     
    	my $host = `hostname`;
    	chomp($host);
     
    	my ($user,$dom);
    	my $handle = "LOAD";
    	if (open(LOAD,$state))
    	{
    		my $oldcgi = new CGI ($handle);
    		close(LOAD);
    		if (my $olduser=$oldcgi->param('auth_login') and my $olddomain=$oldcgi->param('auth_domain'))
    		{
    			$user = $olduser;
    			$dom = $olddomain;
    		}
    	}
     
    	my $line = "$date - $user reseted password for user $resacc @ $hour:$min:$sec";
    	open(OPELOG,">>$file") or die "Can't open $file for update: $!";
    	print OPELOG "$line\n";
    	close(OPELOG);
    }
     
    # Log all operation in a file if failure
    sub OpeLogFailure {
    	my $file = 'pwd_reset.log';
     
    	my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
    	$mon+=1;
    	$year+=1900;
    	my $date = "$mday/$mon/$year";
    	my $host = `hostname`;
    	chomp($host);
     
    	my ($user,$dom);
    	my $handle = "LOAD";
    	if (open(LOAD,$state))
    	{
    		my $oldcgi = new CGI ($handle);
    		close(LOAD);
    		if (my $olduser=$oldcgi->param('auth_login') and my $olddomain=$oldcgi->param('auth_domain'))
    		{
    			$user = $olduser;
    			$dom = $olddomain;
    		}
    	}
     
    	my $line = "$date - $user reset password failed for user $resacc @ $hour:$min:$sec";
    	open(OPELOG,">>$file") or die "Can't open $file for update: $!";
    	print OPELOG "$line\n";
    	close(OPELOG);
    }

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 1
    Points
    1
    Par défaut appli mot de passe
    voila je rapelle simplement le but de mes posts dans ce forum, je dois modifier cette application de façon à ce que l'atttribution des mots de passe ne soit pas "mot de passe=utilisateur" mais qu'au moment de modifier le mot de passe on puisse y mettre ce que l'on veut.

    Merci

  8. #8
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Bon ben faut faire un peu de ménage dans tout ça...
    En gros les seuls fichiers qui semblent encore joueur un rôle sont :
    reset_exclude.param, resetpwd.cgi et sans doute login2.cgi.
    Le reste est bon à jeter (fais en tout de même un backup histoire de).

    Le fichier à modifier pour ton histoire est resetpwd.cgi .

    --
    Jedaï

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 1
    Points
    1
    Par défaut RE RE Application mot de passe
    Merci jedai pour tes infos, donc la je vois que dans le fichier resetpwd.cgi
    il y a cette partie :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # Reset NT account password
    sub ResetPassword {
    	my ($strUser, $strDomain) = @_;
    	$strUser = lc($strUser);
    	my $strNewPasswd = lc($strUser);
    	my $result = 0;
    	my $exclude = 0;
    	foreach my $x (@list)
    	{
    		chomp($x);
    		$exclude = 1 if ($strUser eq $x);
    	}
    	my $objUser = Win32::OLE->GetObject("WinNT://" . $strDomain . "/" . $strUser) or $result = 1;

    Je pense que c'est la partie que j'ai mise en rouge que je dois modifier, la on voi bien que dans cette partie il est dit que le nouveau password est égal au nom d'utilisateur, donc moi j'aimerais modifier cette partie de façon à ce que ça m'affiche une boite de dialogue dans laquelle je puisse mettre le mot de passe que je veux.

    est ce que quelqu'un saurait comment faire svp ???

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 1
    Points
    1
    Par défaut appli mot de passe
    Toujours pas de réponse?

    s'il vous plait est ce que quelqu'un saurait comment faire??
    j'aimerais bien être débarassé de cette appli une bonne fois pour toute
    merci

  11. #11
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    C'est-à-dire que c'est extrêmement simple... Il suffit de rajouter un champ text "password" au formulaire HTML qui envoie sur ce script CGI, et d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $strNewPasswd = $cgi->param('password');
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $strNewPasswd = lc($strUser);
    A ce niveau là, t'aider plus reviendrait à de l'assistanat, et je ne suis pas payé pour ça.

    Par ailleurs j'espère que ces scripts ne sont accessibles qu'à partir d'un environnement bien sécurisé ? Parce qu'ils permettent à n'importe qui d'infiltrer vos ordinateurs sinon.

    --
    Jedaï

  12. #12
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 1
    Points
    1
    Par défaut re
    merci jedai pour ton aide, je vais essayer ça

    et oui les scripts sont sur un serveur bien sécurisé avec un parefeu et tout ce qui va avec

    merci encore

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Points : 1
    Points
    1
    Par défaut re
    wèèè merci jedai ça fonctionne super bien, j'ai pas d'erreur c'est nickel!

    merci

Discussions similaires

  1. Mot de passe application ACCESS
    Par chokri dans le forum Assembleur
    Réponses: 3
    Dernier message: 12/08/2006, 05h18
  2. Réponses: 15
    Dernier message: 15/05/2006, 09h26
  3. Réponses: 10
    Dernier message: 15/05/2006, 07h51
  4. Comment proteger mon application par un mot de passe
    Par Sabrina_of_darkness dans le forum Langage
    Réponses: 9
    Dernier message: 01/04/2006, 23h46
  5. [FAQ] Exécuter application avec autre login/mot de passe
    Par Lung dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 16/01/2006, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo