# Dotnet > Gnral Dotnet > Dveloppement Office System > InfoPath >  Aide sur les certificats et modles [Dbutant(e)]

## Aurlien78

Salut,

Je suis assez nouveau sur Infopath et j'aurais besoin de quelques explications, je n'ai pas tout saisi !

J'ai repris un modle de formulaire cr par une personne, avec une source de donnes principale et une secondaire provenant d'un fichier XML, qui sera remplie par une appli java.

le mode de fonctionnement est le suivant : les formulaires seront utiliss en mode dconnect, un ou plusieurs modles seront livrs avec l'appli en question. 
Les utilisateurs pourront utiliser ces modles pour en crer d'autres, mais sans pouvoir dans la mesure du possible altrer les modles fournis (si ce n'est pas possible techniquement, on passera par une "bonne pratique").

Au niveau de la persistence, on stocke les modles dans la base de donnes (et on peut potentiellement rcuprer des modles par synchronisation de donnes entres bases).

Alors maintenant, les questions : 
- Dj, au niveau des certificats, est ce que je vais rencontrer des soucis, je pense notamment au cas o on rcupre un modle provenant d'une autre base. J'ai entendu dire qu'on pouvait "installer" un formulaire sur une machine, pour viter les messages comme quoi il faut installer tel ou tel certificat. Qu'en est il, vais je avoir des soucis  ce niveau l ?
- Ensuite, au niveau du xml gnr quand on enregistre un formulaire, sur la premire ligne, j'ai le "chemin du modle", qui ne correspond bien entendu pas du tout  l'endroit o j'ai recr le fichier provenant de la base, mais plutt  l'endroit o le formulaire a t cr  l'origine. Pourtant, j'arrive  ouvrir mon formulaire .... j'ai loup quelque chose ? la ligne ne sert pas du tout ?
- Enfin, est ce que je ne vais pas avoir des soucis avec les modles crs par les utilisateurs  qui se baseront sur les modles fournis ? y a t'il des rgles spcifiques  suivre pour l'utilisateur ? (je pense toujours au sujet des certificats, mais aussi au fait de bien "dconnecter" les modles crs des modles de base)

Une dernire chose que j'avais oubli : actuellement ma source de donnes secondaire est stocke  un endroit sur le disque, en dur. Je voudrais pouvoir la mettre dans le rpertoire de base de chaque utilisateur, est ce possible ? J'ai pu ajouter la source en utilisant la variable %HOMEPATH% dans l'explorateur de fichiers, mais je ne sais pas si ce sera OK ...

Voila, merci de votre aide

----------


## Aurlien78

Bon d'aprs ce que j'ai pu lire, le %HOMEPATH% ne fonctionnera jamais ...... y a t'il un autre moyen ?

Pour les certificats, j'ai lu quelques trucs et utilis regform pour installer un modle de formulaire, mais si un utilisateur veut crer un modle  partir de celui install, je ne sais pas trop comment grer a ... sera t'il oblig de le signer ?

----------


## virgul

Salut,

Voici ce que je peux te dire:

Le certificat de l'autorit de certification (et non celui que tu as sur ton PC (certificat de signature de code)) qui a produit le formulaire doit tre install sur la machine de celui qui l'utilise si il y a un passage d'un formulaire a un autre sinon il pourra toujours cliquer sur ouvrir sans installer le certif d'authorit de la CA.

Le chemin que contient le xml est utilis si tu double clic sur le fichier xml il va dj chercher a cette endroit et si il ne trouve rien il va chercher dans son cache de formulaire(si tu veux plus d'info sur le cache demande).

Le meilleur moyen pour un fichier de config est de le stok dans temp (vu que depuis win2000 chaque utilisateurs  le sien).

Pour le rcuprer:


```
  string temp = Environment.GetEnvironmentVariable("TEMP");
```


Bon a part ca je ne comprends pas comment tu veux faire pour que tes utilisateurs puisse crer des autre modle de formulaires avec comme base cela dj existant.

P.S. si tu signe ton form et qu'il est full trust pas de souci tu peux le copier comme tu veux ou tu veux sans devoir l'installer

----------


## Aurlien78

Merci pour la rponse !

Alors  propos de mon besoin : on fournit un modle de formulaire "de base", full trust vu qu'il y a du code derrire un bouton, et des sources de donnes externes. 
A partir de l, les utilisateurs doivent pouvoir partir de ce modle pour en crer un autre (en fait,  peu de choses prs, uniquement pour de la mise en forme). Ensuite, les utilisateurs doivent pouvoir utiliser ces 2 modles, plus gnralement tous les modles qu'ils crent.
Nos modles sont stocks en base, et peuvent faire l'objet d'une synchronisation entre 2 postes (l'un rcupre les modles ajouts sur l'autre).

Voila donc le soucis. A partir de l, l'idal pour moi serait de ne pas du tout utiliser ces signatures, mais visiblement,  cause du full trust, je n'ai pas le choix.


Donc pour cette histoire de certificat, dis moi si je me trompe, mais si on dcide d'acheter un certificat de l'autorit de certification, et qu'il est install en standard sur les postes destins  recevoir l'appli, on n'aura plus aucun problme ? les modles de formulaires crs par les utilisateurs pourront tre signs avec ce certificat pour peu que sa cl soit publique, ou alors je n'ai toujours rien compris aux certificats ? ^^
Et la publication dans tout a ? elle est obligatoire dans mon cas, sachant que chacun utilisera son modle de formulaire "dans son coin" ? 

Sinon, pour la cration de modles  partir d'un modle existant, si je ne me trompe pas, pour qu'un modle soit diffrent d'un autre, il suffit de modifier son nom (donc son ID) dans Infopath ? les fichiers .xml contiendront alors le bon ID, et donc s'ouvriront avec le bon modle ?

Je veux bien quelques infos concernant le cache, vu que dans mon cas le chemin contenu dans le fichier .xml ne correspondra  rien (modle stock en base et fichier recr temporairement). 

Enfin, pour le stockage des fichiers de source de donnes externes, j'aimerais bien les stocker dans un rpertoire temporaire, donc unique pour chaque utilisateur, mais je ne sais pas comment configurer a dans InfoPath ... je peux pointer vers un fichier sur mon disque dur, mais ce chemin sera stock "en dur", c'est la partie Infopath qui me pose problme, la rcupration en Java se fait en effet trs facilement

Merci pour ton aide !

----------


## Aurlien78

ah et dans la foule, pour les certificats, on m'a parl de makecert pour se fabriquer des certificats, c'est jouable dans mon cas de crer un certificat avec cet outil et de le dployer sur les postes sur lesquels l'appli sera utilise ? 
Comme a les utilisateurs utiliseraient ce certificat pour crer leurs modles de formulaire ?

----------


## virgul

je te donnerai plus d'info plus tard pour le cache et pour le reste.

Mais en ce qui concerne l'authorit de certif si tu as un serveur win 2003 tu peux te crer ta propre authorit et donc donner des certificats signature de code a tout tes utilisateurs et le problme sera rgl gratuitement (a part si t'as pas de serveur 2003)...

Pour la publication tu peux trs bien leur expliquer comment procder le wizard n'est pas si compliqu que ca. Car s'il arrive  crer un form il arriveront surement a le publier!

Au faite pourquoi ne pas mettre en place un site WSS (gratuit avec 2003 toujours) afin qu'il les publie dessus et comme ca plus de problme de copie d'ID et de toute ces choses.

----------


## Aurlien78

alors, j'ai un poil avanc sur les certificats : on m'a conseill d'utiliser makecert pour me fabriquer un certificat, qui serait donc dploy sur les machines concernes automatiquement, et donc (et a c'est la partie qui me manque toujours) les utilisateurs pourraient utiliser le certificat pour signer le formulaire et tre tranquille pour s'changer les modles entre eux, si je ne dis pas de btises.

Pour la publication  mon avis c'est ce qui sera fait (enfin, si la publication est ncessaire ?). Ce qui m'embte c'est quand on va synchroniser, qu'ils vont rcuprer les modles de formulaires supplmentaires sur leur poste, ils devront donc republier avant de pouvoir utiliser ces modles ?

Pour le serveur WSS, ce n'est pas possible puisque certains utilisateurs seront dconnects

----------


## virgul

makecert c'est pour du test et pas de la production... tu ferais mieux de pas trop couter cette personne

Authorit de certif obligatoire pour faire un certif que tout le monde pourra lire. Soit ton serveur 2003 soit un que tu paye... ou alors mais ca rajoute une complexit le dployer via un MSI ou le tools jscript dont je me souviens plus le nom..

----------


## Aurlien78

ah ok ... bon ca me donne quand mme une ide de comment je dois faire marcher a en attendant, de toutes faons on achetera un certificat si besoin.

Sinon pour le certificat en question, impossible de l'ajouter dans le magasin "Personel", ca me dit que la commande a fonctionn, mais rien n'apparait, et donc pas possible de le voir dans InfoPath ....

----------


## virgul

T'as pas de serveur win 2003 sous la main?

C'est normal c'est pour du test donc ca marche tant que tu es sur la mme machine mais si tu change ca ne marche plus!

Si tu veux je t'en fourni un pour tes tests?

----------


## Aurlien78

oh si je dois bien avoir du serveur 2003 quelque part ... je vais jeter un oeil, mais je ne suis pas sr de comment faire a, donc s'il y a une mthode particulire pour crer la cl, je veux bien que tu m'en parles  ::):

----------


## virgul

Regarde dj la vido installe ta CA et aprs je t'expliquerais comment obtenir un certif de cette dernire.

Au faite  ::google::  : avec les mot "autorit de certif " tu trouve plein d'info supplmentaire.

----------


## Aurlien78

ok merci je vais jeter un oeil  tout a !

----------


## Aurlien78

Alors, j'ai pas mal avanc avec Infopath. 
Je n'ai pas encore pu tester pour les certificats gnrs sous 2003.

Par contre, au sujet de mes sources externes, pour lesquelles je voulais utiliser le %HOMEPATH%, j'ai vu que le chemin est indiqu dans le xsf : <xmlFileAdapter fileUrl="D:\.....">, il n'y a pas moyen de mettre la variable d'environnement quelque part la dedans ??

----------


## Aurlien78

bon, plus de soucis ct InfoPath  priori, si ce n'est que je n'ai pas trouv le moyen d'indiquer le chemin de mes fichiers de sources externes avec les variables d'environnement .....

Par contre, ct certificats, je n'ai pas pu installer le "Certificate Services".
Est ce que vous pouvez me confirmer avant que je demande son installation, que les certificats gnrs par ce serveur 2003 seront suffisants, et surtout qu'il n'y aura pas de soucis niveau lgal ou autre ? 

Merci !!

----------


## virgul

Pour ce qui est de 2003 si t'as une licence tu peux l'utiliser...

Ce qu'il faut faire quand tu demande un certificat sur ton authorit (http://serveurname.ch/certsrv) il faut que tu slctionne signature de code et non ce qui est par dfaut.

En fichier joint il y a une explication sommaire de comment procder (c'est en allemand mais ca reste comprhensible).

Pour ces histoire de chemin faut encore que je regarde car moi j'ai pas du tout ce genre de problme car je travail avec Sharepoint.

----------


## Aurlien78

D'aprs ce que j'ai pu voir ici et l, il ne serait pas possible d'utiliser des variables comme %HOMEPATH% pour indiquer les fichiers de sources externes ... c'est bien regrettable :/

Sinon, pour les certificats, je n'ai pas pu utiliser le serveur 2003, le composant n'est pas install, et manifestement de ce que j'ai compris, on n'a pas d'autorit de certification interne, et donc on ne peut pas dlivrer de certificats ...

Donc je ne comprends plus : pour moi, avec le serveur 2003, on aurait gnr un certificat qui aurait t install sur les postes utilisant l'appli, qui permettrait de "dfinir" notre AC. 
Ensuite, un autre certificat serait utilis pour signer le code, fourni par cette AC, donc reconnu fiable par les machines sur lesquelles le premier certificat serait install. Donc toutes les machines pourraient ouvrir et utiliser les modles signs avec cette signature, sans avoir d'autre certificat  installer (?? pas sr), vu qu'il serait dlivr par l'AC.
Enfin, ce certificat permettrait de signer les modles pour les utilisateurs qui comptent crer des modles.
Est ce bien le fonctionnement ou alors j'ai rellement loup un truc ?

Pour moi le but est de pouvoir ouvrir (sans se casser la tte  installer des certificats) tous les modles crs, sur n'importe lequel de nos postes.


Enfin, dernier "point noir" que j'aimerais lever, c'est la rouverture d'un modle. 
Je m'explique : nos modles sont enregistrs en base. Donc quand on va faire notre synchro, on va rcuprer les modles sur un autre poste sur lequel ils n'existaient pas, et galement les formulaires crs  partir de ces modles. Y a t'il une manip  faire pour que ds l'ouverture d'un formulaire associ au modle, celui-ci s'ouvre (je suppose que oui, parce que le modle en question n'aura pas t "publi" sur la machine ?)

Enfin, une dernire question : si on dcide de modifier un modle existant. Dans ce cas il va falloir modifier tous les formulaires bass sur l'ancien modle, en modifiant l'ID qu'on voit dans le fichier de formulaire. Est ce que la modification de l'ID est suffisante, ou y a t'il autre chose ? 

Merci encore pour votre aide !!



edit : une remarque que j'ai trouv sur le site de Microsoft expliquant les signatures/certificats avec Infopath : 
tant donn qu'un certificat numrique que vous crez vous-mme n'est pas mis par une autorit de certification reconnue, les modles de formulaire signs  l'aide d'un certificat que vous avez cr sont appels modles de formulaire auto-signs. Ces certificats auto-signs sont considrs comme non authentifis et gnrent un avertissement de scurit si le niveau de scurit du modle est dfini sur Confiance totale. InfoPath ne fait confiance  un certificat auto-sign que sur les ordinateurs ayant accs  la cl prive du certificat en question. Dans la plupart des cas, cela signifie qu'InfoPath fait uniquement confiance aux certificats auto-signs se trouvant sur l'ordinateur ayant servi  les crer, sauf si la cl prive est partage avec d'autres ordinateurs.

Serait ce ce qu'il me faut : une cl prive partage avec les autres postes ? et si c'est a, comment en pratique a se traduit ? ^^
Merci !!

----------


## virgul

Ma fois c'est comme ca et c'est surtout pour la scurit car sinon n'importe qui te modifie ton form et il fait plus du tout ce que tu veux.

Rcapitulons:

ceux qui veulent pouvoir modifier le form doivent avoir un signature de code install sur le PC (l'authorit de certif s'installant comme autoris lors de l'installation de ce dernier).

Ceux qui veulent seulement travailler avec doivent avoir l'authorit de certif reconnu sur leur PC (l'authorit de certif qui a crer le certificat de signature de code).

Si tu ne publie qu'a un endroit ton form tu n'aura pas de problme de mise  jour a part si ton schma principale change. 
Si tu change l'endroit de publication oui effectivement faudra modifier les anciens xml gnr avant la modif.



> Pour moi le but est de pouvoir ouvrir (sans se casser la tte  installer des certificats) tous les modles crs, sur n'importe lequel de nos postes.


Si tu veux pas tous ces contraintes de certif fait des form simple sans code behind et accs a des donnes d'autres domaines que celui ou tu te trouve.

A mon avis tu peux dj t'estimer heureux que Infoapth existe car vu la complexit de ton ide je crois que tu ne trouveras pas un prog qui arrive  faire mieux ou aussi simplement ce que tu veux.

----------


## Aurlien78

Ok donc la dmarche est la bonne : il me faut 2 certificats. 
Par exemple si on prend une machine A et une B, la A tant appele  crer/modifier un modle et la B uniquement  l'utiliser.
Sur la A, il faut installer le certif de signature du code (et donc l'autre s'installe automatiquement). Je cre un modle, je le donne  B, et du moment que B a l'autorit de certif d'install, il peut lire le modle que A a cr.

Quand B ouvre ce modle, est ce qu'il a un message d'avertissement ? je suppose que non, tant donn que le certificat est reconnu comme fiable, je me trompe ?


Bon donc tout a rpond quand mme bien  mon problme je pense. Je peux faire pr-installer le certif de signature du code sur les postes sur lesquels les modles seront modifis ( priori, potentiellement tous)

Et pour la modification de modle de formulaire, je passerai donc par une tape de mise  jour de l'ID.

En tous cas merci de ton aide !

----------


## virgul

Reconnaitre  l'authorit de certif n'est pas gal a intaller un certificat.

Ton PC qui utilise seulement le form doit juste reconnaitre l'authorit de certif comme sure.


C'est pour ca que je dit que si tu install un certif signature de code l'authorit passera automatiquement dans les authorits sure.

Pour comprendre:
Va dans IE-> outils option internet->contenu->certificats.
La tu a plein d'onglets et tu en as un qui s'appelle authorits de confiance c'est la que tu dois trouver ton authorit

Dans personnel c'estz la que tu auras ton certif de signature de code.


Pour reconnaitre une authorit comme sure tu peux soit dl le cert de de ton authorit et l'install sur le PC ou soit le faire directement depuis le Pc via un browser en entrant l'adresse de ton authorit puis en tlchargant la chaine de certif.

Aprs il est vrai qu'a la premire ouverture du form publi par une personne (certif de sign de code) tu doit cliquer sur (je me souviens plus exactement du text): toujours autoriser ce certif. Et aprs plus jamais de message.

----------


## Aurlien78

ah ok donc impeccable !! En effet j'ai vu ce matin qu'on pouvait exporter un certificat avec sa cl prive, a va rsoudre mon problme a en thorie.

je vais faire des tests !!!

----------

