Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Outils > XMLRAD
XMLRAD Environnement de développement Web XML/XSL. Avant de poster -> F.A.Q XMLRAD
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 05/05/2006, 10h13   #1
Membre à l'essai
 
Inscription : mars 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 77
Points : 23
Points : 23
Par défaut Impossible d'accéder au module Stat

J'essaie d'accéder au module Stats de mon appli XMLRAD mais il m'affiche le message :
Utilisateur Inconnu. Veuillez vérifier votre identifiant.
J'accède à toutes mon appli sauf aux stats.
J'utilise comme système d'authentification celle notifié dans le tutoriel "Comment gérer la sécurité à partir d'une base de données"

La valeur du Context XMLC_Supervisor est à 1 ainsi que XMLC_Administrator.

Si je cré un utilisateur dans le module sécurité d'XMLRAD, je ne peux pas bien sur me connecter avec cet utilisateur.
Si je cré le même utilisateur dans ma base de donnée et dans le module sécurité, il m'indique un message "CIRCULAR..."

Une idée, d'avance merci.
JMLD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 10h38   #2
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
pour avoir accès au module de stats ou au dashboard il faut qu'au moins un des utilisateurs soit dans le groupe superadmin (XMLC_Supervisor à 1)
il faut aussi que les groupes par défaut dan sle fichier security.xml soit toujours là ! (avec les mêmes ID: -412 pour superadmins)
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 11h02   #3
Membre éprouvé
 
Inscription : mars 2002
Messages : 516
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 516
Points : 483
Points : 483
Envoyer un message via MSN à Sylvain James
Je confirme, j'avais eu le même problème car j'avais viré les groupes par défaut de mon fichier security.xml

Alors j'ai recréé un nouveau projet, et j'ai recopié ces groupes ainsi que les users superadmin, admin dans mon fichier security.xml, et tout devient ok.

Sylvain
__________________
.NET / ASP.NET MVC / Delphi / XMLRAD / XSL / Technos Web

Mon Blog : http://blog.developpez.com/index.php?blog=89
Mes Articles : http://sjames.developpez.com/
Rubrique XMLRAD: http://xmlrad.developpez.com
Sylvain James est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 14h28   #4
Membre à l'essai
 
Inscription : mars 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 77
Points : 23
Points : 23
Mon Fichier Security.xml est bien là, Le groupe -412 est bien là
Citation:
<Group>
<ID>-412</ID>
<Name>SuperAdmins</Name>
<Infos/>
<FieldName>XMLC_Supervisor</FieldName>
<DirectoryGroupName/>
</Group>
Par contre dans users, je n'ai pas mes utilisateurs car ils sont dans ma Bdd
JMLD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 15h03   #5
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
es-tu maintenant sur que dans le OnAuthenticate tu fais bien le Context.SetValue('XMLC_Supervisor', '1'); ?
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 16h15   #6
Membre à l'essai
 
Inscription : mars 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 77
Points : 23
Points : 23
Oui, sur n'importe qu'elle page, en faisant un XMLC_OUTPUTFORMAT = XML,
Citation:
<XMLC_Administrator>1</XMLC_Administrator>
<XMLC_Supervisor>1</XMLC_Supervisor>

<XMLC_User>1</XMLC_User>

<XMLC_Guest>1</XMLC_Guest>
JMLD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2006, 17h18   #7
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
ok je crois que je sais !
le module qui implémente le OnAuthenticate doit être aussi dans le pool XMLCAdm pour que l'authentification soit executé pour ce pool là !
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 10h58   #8
Membre à l'essai
 
Inscription : mars 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 77
Points : 23
Points : 23
OK, j'ai ajouté mon module dans le pool.
J'avance, mais maintenant j'ai un message de violation d'accès.
Citation:
Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'. Lecture de l'adresse 00000044
J'ai fait un iisreset, mais rien ne change.
dans les trace, voila ce que je trouve.
Code :
10:42:24584.3810-0TXMLCollectionThread1Execute - Exception in XMLApplication.XMLCollectionDispatchRequest: Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'. Lecture de l'adresse 0000004410:42:24584.4705XMLC_DASHBOARD399TXMLApplication1GetAvailableXMLCollectionAndDispatchRequest - Exception: Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'. Lecture de l'adresse 0000004410:42:24584.5555XMLC_DASHBOARD399TXMLApplication1InternalGlobalDispatchRequest - Exception: Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'. Lecture de l'adresse 0000004410:42:24584.6215XMLC_DASHBOARD399TXMLApplication1InternalDispatchRequest - Exception: Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'. Lecture de l'adresse 0000004410:42:24584.6855XMLC_DASHBOARD399TXMLApplication1TXMLApplication.HandleException for exception: Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'. Lecture de l'adresse 0000004410:42:24589.4275FORMERROR399RequestStart310.27.200.146
JMLD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 11h03   #9
Membre à l'essai
 
Inscription : mars 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 77
Points : 23
Points : 23
d'une façon plus claire, voici la trace.
Citation:
10:42:24 584.381 0 - 0 TXMLCollectionThread 1
Execute - Exception in XMLApplication.XMLCollectionDispatchRequest: Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'.
Lecture de l'adresse 00000044
10:42:24 584.470 5 XMLC_DASHBOARD 399 TXMLApplication 1
GetAvailableXMLCollectionAndDispatchRequest - Exception: Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'.
Lecture de l'adresse 00000044
10:42:24 584.555 5 XMLC_DASHBOARD 399 TXMLApplication 1
InternalGlobalDispatchRequest - Exception: Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'.
Lecture de l'adresse 00000044
10:42:24 584.621 5 XMLC_DASHBOARD 399 TXMLApplication 1
InternalDispatchRequest - Exception: Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'.
Lecture de l'adresse 00000044
10:42:24 584.685 5 XMLC_DASHBOARD 399 TXMLApplication 1
TXMLApplication.HandleException for exception: Violation d'accès à l'adresse 0206AEA4 dans le module 'CARTE_T.dll'.
Lecture de l'adresse 00000044
10:42:24 589.427 5 FORMERROR 399 RequestStart 3 10.27.200.146
JMLD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 11h08   #10
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
essaye de mettre ton code de OnAuthenticate en commentaire pour voir si c'est lui qui pose problème...
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 14h43   #11
Membre à l'essai
 
Inscription : mars 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 77
Points : 23
Points : 23
en mettant en commentaire ces 2 bouts de code et en utilisant l'authentification de XMLRAD ( en créant bien sur un SuperAdmins), je peux rentrer dans les stats.
Citation:
procedure TCARTE_TBM.MyloginBeforeXMLGram(XMLGram: IXMLGram; InputDoc, OutputDoc: IXMLCursor; var Skip: Boolean);
var
Session: WideString;
Expiration: TDateTime;
temp_agtp : widestring;
begin
temp_agtp := Context.Values['UserName'] ;
Context.Values['code_agtp'] := RIGHTstr(Context.Values['UserName'],3);
Context.Values['passwordMD5'] := Context.Values['Password']; // From XMLC_FormLogin -> nom de la base donnée
XMLCollection.DBExtract('qryUSRPwd');
if Context.Values['code_agtp'] = '' then
raise Exception.Create('Password invalid');
Session := WideUpperCase(MD5(FloatToStr(Now)));
// Prepare for Cookies
Context.Values['XMLC_UserID'] := Context.Values['code_agtp'];
Context.Values['XMLC_UserName'] := temp_agtp;
Context.Values['XMLC_Session'] := Session;
// Prepare for update DB Session + Expiration
Context.Values['id_session'] := Session;
if XMLC_TraceInfo then EventLog.TraceInfo(XMLRequest, ClassName, 'XMLC_UserID = ' + Context.Values['XMLC_UserID']);
if XMLC_TraceInfo then EventLog.TraceInfo(XMLRequest, ClassName, 'code_agtp = ' +Context.Values['code_agtp']);
if XMLC_TraceInfo then EventLog.TraceInfo(XMLRequest, ClassName, 'XMLC_UserName = ' + Context.Values['XMLC_UserName']);
if XMLC_TraceInfo then EventLog.TraceInfo(XMLRequest, ClassName, 'temp_agtp = ' + temp_agtp);
Expiration := Now+StrToIntDef(XMLApplication.InitParams.GetValue('XMLC_LoginTimeOut'), 720) / (24 * 60);
Context.Values['expiration'] := FloatToStr(Expiration);
XMLCollection.DBBatch('qryUpdateUSRSession');
Context.Values['XMLC_SkipLoginAuthentication'] := '1';
end;
Citation:
procedure TCARTE_TBM.XMLCollectionEventsloginAuthenticate(XMLCollection: IXMLCollection; e: TAuthenticateEventArgs);
var
Database: TDacDatabase;
Session: WideString;
USR_NAME: WideString;
Expiration: TDateTime;
I: Integer;
GroupFieldName: WideString;
begin
{ if XMLApplication.InitParams.Values['XMLC_Design'] = '1' then
begin
USR_NAME := 'AG27399' ;
Context.Values['code_agtp'] := '399';
Context.Values['XMLC_Authenticated'] := '1';
exit;
end; }
Database := (XMLCollection as IXMLCollection2).GetDatabaseComponent('Database');
if not Database.Connected then
Database.Connected := True;
Database.StartTransaction;
try
try
e.Handled := True;
XMLApplication.CheckSecurityFile;
USR_NAME := Context.Values['XMLC_UserName'];
Session := Context.Values['XMLC_Session'];
Context.Values['code_agtp'] := rightstr(USR_NAME,3);
Context.Values['id_session'] := Session;
XMLCollection.DBExtract('qryUSRSession');
if Context.Values['code_agtp'] = '' then
begin
Context.Values['XMLC_Authenticated'] := '0';
XMLRequest.RaiseError('XMLC_AUTHENTICATION_REQUIRED', 'TTrainingWM.XMLCollectionEvents1Authenticate');
end;
Expiration := StrToFloatDef(Context.Values['expiration'], 0);
if Expiration < Now then
begin
Context.Values['XMLC_Authenticated'] := '0';
XMLRequest.RaiseError('XMLC_AUTHENTICATION_REQUIRED', 'TTrainingWM.XMLCollectionEvents1Authenticate');
end;
Context.Values['XMLC_Authenticated'] := '1';
// Manage Groups
for I := 0 to XMLApplication.SecurityGroups.Count-1 do
begin
GroupFieldName := XMLApplication.SecurityGroups.GetValueNo(I);
if GroupFieldName <> '' then
Context.SetValue(GroupFieldName, '0');
end;
XMLCollection.DBExtract('qryUSRGroups');
Context.Values['XMLC_Guest'] := '1';
if Context.Values['CA_UTI_NIV'] = '3' then
begin
Context.values['XMLC_User'] := '1';
Context.values['ECOUTE_CLIENT'] := '1';
end else if Context.Values['CA_UTI_NIV'] = '2' then
begin
Context.values['XMLC_User'] := '1';
Context.values['XMLC_Administrator'] := '1';
Context.values['ECOUTE_CLIENT'] := '1';
end else if Context.Values['CA_UTI_NIV'] = '1' then
begin
Context.values['XMLC_User'] := '1';
Context.values['XMLC_Administrator'] := '1';
Context.Values['XMLC_Supervisor'] := '1';
Context.values['ECOUTE_CLIENT'] := '1';
end else if Context.Values['CA_UTI_NIV'] = '4' then
begin
Context.values['ECOUTE_CLIENT'] := '1';
end;
except
Database.Rollback;
raise;
end;
finally
Database.Commit;
end;
end;
JMLD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 15h00   #12
RDM
Membre Expert
 
Inscription : mars 2002
Messages : 1 426
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 1 426
Points : 1 546
Points : 1 546
Envoyer un message via ICQ à RDM
En fait dans l'article il manque une protection contre le fait que l' on trouve pas la database:


Code :
1
2
3
4
5
 Database := (XMLCollection as IXMLCollection2).GetDatabaseComponent('Database');
 if Database = nil then
  raise Exception.Create('Database not found');
 if not Database.Connected then
  Database.Connected := True;
d'autre part ce cas est traité dans l'article:


Citation:
La première consiste à utiliser le fichier Security.xml en le complétant des utilisateurs superviseurs qui seront autorisés à exécuter ces actions. il faudra alors dans le processus de login mettre a jour la session générée dans le fichier security.xml. Cette méthode a pour avantage de ne pas requérir une connexion à la base de données pour le Pool XMLCAdm, ce qui permet d'avoir accès à ces actions même si on a un problème de connexion.

La seconde solution est de mettre le module contenant le composant XMLCollectionEvents et le XMLService MyLogin dans le Pool XMLCAdm ainsi que la Datasource. Il faudra aussi bien vous assurer que dans les InitParams, XMLC_PoolRedirect est à 1.
__________________
RDM
Tout Est Relatif
Rubrique XMLRAD: http://xmlrad.developpez.com
FAQ XMLRAD: http://xmlrad.developpez.com/faq/
RDM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2006, 15h28   #13
Membre à l'essai
 
Inscription : mars 2003
Messages : 77
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 77
Points : 23
Points : 23
J'ai opté pour la deuxième solution.
Il manquait l'ajout de la database dans le pool XMLCAdm

Merci bp
JMLD est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h32.


 
 
 
 
Partenaires

Hébergement Web