Manipulation de fichier dans une appli via un compte utilisateur [VB] - C#/.NET managed - Programmation
Marsh Posté le 20-06-2007 à 17:01:45
Est-ce que le droit "Ecriture" tout seul (sans prendre le droit "Lister les fichiers" et "Lecture" ) n'est pas exactement ce que tu cherches à faire ?
Tu peux copier des fichiers vers un répertoire (en Windows explorer via un drag and drop sur le répertoire et en ligne de commande sans passer par un "cd" sur le répertoire) sans pour autant en avoir droit de lecture ...
Marsh Posté le 20-06-2007 à 17:04:10
http://msdn.microsoft.com/library/ [...] erting.asp
C'est trop incomplet pour moi, mais c'est ce que tu veux faire.
Ca permet à ton programme d'utiliser temporairement une autre identité.
Marsh Posté le 20-06-2007 à 17:55:09
Ecriture permet de créer de nouveaux fichiers et dossiers. C'est pas mal, mais j'ai aussi besoin du droit de modification (je renomme les fichiers temporairement avant de faire la sauvegarde). Hors le droit de modification active les droits de lecture de dossier, ce que je ne veux pas.
J'ai trouvé (juste avant de quitter le boulot, comme c'est pratique) les methodes pour downloader et uploader des fichiers, avec paramètres utilisateur et mot de passe (dans my.network). Manque de temps, je n'ai pas pu vérifier leur bon fonctionnement au sein de mon appli, mais ca me semble bien sympathique.
Réponse demain matin
Marsh Posté le 21-06-2007 à 09:21:27
My.Computer.Network.UploadFile et DownloadFile marchent bien, mais j'ai encore un soucis puisque j'utilise le listing du dossier dans mon appli (et pour un test d'existence), et là ce n'est pas avec le bon utilisateur
Marsh Posté le 21-06-2007 à 12:52:59
Me revoila, mais pour un autre problème, dans le genre bien chiant là
(j'essaye de mettre à jour une progressbar en utilisant un backgroundworker avec des info retournées par un formulaire différent dans sa méthode Load)
Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est : Le thread actuel doit être en mode STA (Single Thread Apartment) avant que des appels OLE puissent être effectués. Assurez-vous que votre fonction Main est marquée comme STAThreadAttribute.
Ca fait 3h que je fouille dans l'aide pour ne pas trouver une indication compréhensible
( http://msdn2.microsoft.com/fr-fr/l [...] S.80).aspx , http://msdn.microsoft.com/library/ [...] stopic.asp
)
[Edit] mon code:
Code :
|
lol, j'y comprend rien et ca marche. Dés que j'appel form2.show, la barre de progression est bien "animée".
Avant le form2.show j'appelais la méthode ThreadProc(nomDuBackgroundWorker) mais sans succés oO
Désolé pour le dérangement ^^
Marsh Posté le 25-06-2007 à 15:34:47
Retour sur le changement d'utilisateur, je rame depuis jeudi soir et n'avancement que trés lentement (je ne vois pas le bout de la chose )
J'obtiens ce vilain message d'erreur:
"Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est : Tentative de lecture ou d'écriture de mémoire protégée. Cela indique souvent qu'une autre mémoire est endommagée."
Mon code:
Code :
|
Je n'arrive pas à intégrer à et utiliser advapi32.dll et sans cette dll je ne peux rien faire.
J'ai beau retourner le problème, utiliser DllImport ou Declare LogonUser lib "advapi32.dll" (...) toujours une erreur trés explicite m'attends au tournant.
J'ai les nerfs à force.
Marsh Posté le 27-06-2007 à 09:19:29
J'ai (enfin) trouvé un code qui ne me fait pas hériser les cheveux
(script pour asp codé en vb.net)
http://support.microsoft.com/kb/306158/fr
Code :
|
Cela dis je ne comprend pas pourquoi mon code ne marchais pas, il ressemblais beaucoup à celui là
Marsh Posté le 03-07-2007 à 14:06:49
Me revoila toujours vivant (pas pour longtemps), mais voici mon nouveau problème (toujours lié à la manipulation de fichiers en utilisant un autre compte utilisateur):
Impossiblité de créer de dossier dans un dossier où l'utilisateur dispose du contrôle total (je résume d'aprés toutes mes déductions). Pas mal hein ?
Fait étrange l'appli se comporte bien quand je ne change pas d'identité lors de la manipulation de mes fichiers.
Autre fait (super) étrange, mon appli marche sans aucun problème en local avec changement d'utilisateur...
L'attribution des droits sur un objet DirectoryInfo se passe bien, je peux changer de propriétaire, ajouter, modifier et supprimer des droits, mais ca coince quand je veux créer le dossier.
Que ca soit par dossier.create ou par dossier_parent.CreateSubdirectory ca ne marche pas (en passant ou non la DirecotrySecurity)
Mon ultime solution, essayer de débloquer tout les droits lors de la manipulation des fichiers pour l'utilisateur ayant lancé l'application...
Mon tuteur m'a dis qu'il n'y aurais que trés peu de personnes autorisées, mais je vois mal une appli sécurisée laisser un controle total sur ses données
Marsh Posté le 20-06-2007 à 14:13:59
Bonjour,
je travail acutellement sur une appli qui va permettre de sauvegarder des fichiers utiles pour des automates (je ne gère que les fichiers, pas la programmation de ces fichiers).
L'appli doit être sur un serveur distant, donc contrôlé avec des rôles bien spécifiques.
Contenu de mon dossier:
appli.exe
appli.dll
bdd.mdb (protégé par un mot de passe à l'ouverture, contrôle des utilisateurs enregistrés pour l'appli & gestion de l'appli)
sauvegarde (dossier contenant les fichiers sauvegardés)
L'appli marche trés bien avec les droits actuels (lecture, écriture, modification, listage de dossier, parcours de dossier, suppression fichiers/dossiers), mais je souhaite pour des raisons de sécurité ne pas autoriser l'accés au dossier de sauvegarde via l'explorateur de windows.
Et là ca coince,
Le droit "écriture" me permet bien de créer de nouveaux fichiers et dossiers, mais je ne peux plus les modifier, ni même les supprimer. Nous (moi et l'admin système) avons testé les différents droits possibles sur un utilisateur/groupe d'utilisateur, rien ne me conviens.
Je suis donc pour le moment à la recherche d'une manip pouvant permettre à mon appli de passer sous un autre utilisateur (qui lui aura les droits de lecture/écriture/modif/suppr/listage/parcours) pour enfin sauvegarder proprement mes fichiers.
Donc,
Comment faire pour basculer de l'utilisateur courant vers un utilisateur avec pouvoir (droits bien spécifiques et personnalisés) dans mon appli ?
Merci pour votre aide.