Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/09/2007, 18h00   #1
Membre du Club
 
Inscription : juin 2004
Messages : 74
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 74
Points : 42
Points : 42
Par défaut ASP enregistrement dans un journal

Bonjour,
pour un site ASP j'ai activé l'enregistrement dans un journal via ODBC (en fait dans une base access). Ca marche bien chaque enregistrement est ajouté mais la colonne "username" est toujours vide, elle vaut en fait "-"

L'authentification des utilisateurs se fait via une base de données, le serveur lui gère le compte anonyme IUSR_NomMachine bateau. Comment transmettre le login de la personne connecté jusqu'au journal d'activité?

merci d'avance si vous connaissez cette astuce
pifou25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2007, 21h16   #2
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 973
Points : 5 973
Salut,

Comment fais-tu pour identifier les utilisateurs?
Un peu de code?

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 11h40   #3
Membre du Club
 
Inscription : juin 2004
Messages : 74
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 74
Points : 42
Points : 42
Une table, avec le login password, puis redirection selon la requête... Un peu de code alors:

Code :
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
StrLogin	=	tosql(Request.Form("login"))
StrPassword	=	tosql(Request.form("password"))
 
If Request.Form("operation")="valider" Then
	IntRetour= admin_utilisateur_gestion_login( StrLogin, StrPassword)
	If IntRetour="ISSUCCES" Then
		Response.Redirect("prog_tran/p_total.htm")
	Else
		Response.Redirect("erreur.asp")
	End if
 
'... la fonction admin_utilisateur_gestion_login:
 
Function admin_utilisateur_gestion_login( _
		ByVal StrLogin, ByVal StrPassword)
 
	set rs = objEncapsule.identificationParametres(Cstr(StrLogin), Cstr(StrPassword))
	if rs.EOF and rs.BOF then
		admin_utilisateur_gestion_login = "ISECHEC"
	else
		set rs2 = objEncapsule.identification(Cstr(StrLogin), Cstr(StrPassword))
		if rs2.EOF and rs2.BOF then
			admin_utilisateur_gestion_login = "ISECHEC2"
		else
			admin_utilisateur_gestion_login = "ISSUCCES"
		end if
	end if
End function
 
'... enfin dans une DLL l'autre fonction identificationParametres
 
Public Function identificationParametres(pLogin As String, pPwd As String) As ADODB.Recordset
    Dim rsResult As New ADODB.Recordset
    Dim strQry As String
 
    On Error GoTo identificationParametres_err
 
    strQry = "SELECT USER_INT.* " & _
            "From USER_INT where USR_LOGIN = '" & pLogin & "' and USR_PWD = '" & pPwd & "' and USR_ACC_PROGRAMMES = 1 ;"
    rsResult.Open strQry, gConnection
    Set identificationParametres = rsResult
identificationParametres_done:
    Exit Function
 
identificationParametres_err:
    Resume identificationParametres_done
 
End Function
cette dernière fonction est encapsulée dans une DLL tandis que la précédente est dans un fichier ASP include. (d'ou l'objet 'objEncapsule')
Je voudrais que le login soit récupéré dans les logs de IIS au final... ? J'ai tenté ainsi:
Request.ServerVariables("LOGON_USER") = strLogin
... mais en vain (Cet objet ne gère pas cette propriété ou cette méthode: 'ServerVariables')( alors que la syntaxe <%=Request.ServerVariables("LOGON_USER")%> ça marche)
pifou25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2007, 23h00   #4
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 973
Points : 5 973
Salut,

Code :
Request.ServerVariables("LOGON_USER")
est en lecture seule.
Tu veux ecrire dans le journal de IIS ou dans ta base?

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 16h24   #5
Membre du Club
 
Inscription : juin 2004
Messages : 74
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 74
Points : 42
Points : 42
Dans mon cas, le journal IIS est justement une base ODBC (Access en l'occurence, mais je pense la migrer à terme sous Sql server)
Alors, LOGON_USER en lecture seule :s ça n'arrange pas mes affaires.
Je pensais remplir une autre table au moment de l'identification avec IP, datetime, LOGIN (quoi d'autre?) et faire une jointure sur les 2 tables avec les champs IP et datetime, quoique la jointure avec le datetime devrait être un intervalle plutot qu'une jointure bête et méchante... C'est déjà devenu très compliqué à ce stade je trouve, pour une fonction à priori native de IIS...
pifou25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 20h47   #6
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 973
Points : 5 973
Mmmh, ça à l'air bien compliqué...
Faire une jointure sur un champ datetime??? Hum...
L'IP n'est pas une information constante. C'est donc un mauvais identificateur.
Pourquoi tu ne logues pas "StrLogin"?

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 10h27   #7
Membre du Club
 
Inscription : juin 2004
Messages : 74
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 74
Points : 42
Points : 42
bah, c'est un peu le but de ma question : comment fait-on pour loguer ce login vu que le champ LOGIN_USER est en lecture seule?
pifou25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 20h41   #8
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 973
Points : 5 973
Y'a une différence entre le login de session Windows et l'identifiant que tu récupères grâce à ton formulaire d'authentification.
Code :
1
2
StrLogin	=	tosql(Request.Form("login"))
StrPassword	=	tosql(Request.form("password"))
Tu n'as qu'à mettre StrLogin en base.
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2007, 11h20   #9
Membre du Club
 
Inscription : juin 2004
Messages : 74
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 74
Points : 42
Points : 42
Ok, c'est donc ce que je vais faire... Et une jointure sur IP+datetime avec le journal d'activité, pour obtenir l'activité des utilisateurs. Puisqu'il n'y a pas d'autre solution merci quand même.
pifou25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h10.


 
 
 
 
Partenaires

Hébergement Web