Salut à tous je reviens un peu avec mes soucis NTLM, je m'explique, j'ai un script qui fait une connexion NTLM elle ouvre une popup qui demande un nom d'utilisateur et mot de passe sauf que j'aimerais pas que la popup ne s'affiche pas, en gros j'aimerais mettre un message du style " la configuration de votre navigateur ne permet pas la connexion " car quand j'ajoute l'application dans la config de firefox la popup ne s'affiche pas(normal) et prend mon nom d'utilisateur windows.

Sa permettrais de forcer la personne a se loguer avec ses VRAIS identifiants Windows.
J'espère avoir été claire ...

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
<?php
$headers = apache_request_headers();
 
if (!isset($headers['Authorization']))
{
	header('HTTP/1.1 401 Unauthorized');
	header('WWW-Authenticate: NTLM');
	exit;
}
 
$auth = $headers['Authorization'];
 
if (substr($auth,0,5) == 'NTLM ')
{
	$msg = base64_decode(substr($auth, 5));
	if (substr($msg, 0, 8) != "NTLMSSP\x00")
		die('error header not recognised');
	if ($msg[8] == "\x01") {
		$msg2 = "NTLMSSP\x00\x02\x00\x00\x00".
		"\x00\x00\x00\x00". // target name len/alloc            
		"\x00\x00\x00\x00". // target name offset             
		"\x01\x02\x81\x00". // flags             
		"\x00\x00\x00\x00\x00\x00\x00\x00". // challenge             
		"\x00\x00\x00\x00\x00\x00\x00\x00". // context             
		"\x00\x00\x00\x00\x00\x00\x00\x00"; // target info len/alloc/offset           
		header('HTTP/1.1 401 Unauthorized');         
		header('WWW-Authenticate: NTLM '.trim(base64_encode($msg2)));
		exit;
	}
	else if ($msg[8] == "\x03")
	{
		function get_msg_str($msg, $start, $unicode = true)
		{
			$len = (ord($msg[$start+1]) * 256) + ord($msg[$start]);
			$off = (ord($msg[$start+5]) * 256) + ord($msg[$start+4]);
			if ($unicode)
				return str_replace("\0", '', substr($msg, $off, $len));
			else
				return substr($msg, $off, $len);
		}
		$user = get_msg_str($msg, 36);
		$domain = get_msg_str($msg, 28);
		$workstation = get_msg_str($msg, 44);
	}
}
?>