Acces à un dossier partagé via une application seulement [Résolu]

Signaler
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009
-
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009
-
Voilà je me résigne car je ne trouve pas de réponse à mon problème. Ca n'est pas faute d'avoir cherché mais là ...
Voici mon  problème, j'ai un serveur sous windows server 2003 avec un dossier partagé qui s'appelle 'Sauvegardes'.
Je voudrais que mon programme puisse écrire et lire avec des File.Copy, des StreamWritter, et tout ... mais sans que l'utilisateur n'ai accès à ce dossier. J'ai déjà essayé avec plusieurs techniques sans succès, soit j'ai un accès total soit une interdiction totale...
Si vous avez une idée ca serait vraiment bien.
P.s. : J'ai un accès total au serveur et aux postes clients (j'ai pas de restrictions, si faut faire des bidouilles  )

8 réponses

Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

Victoire !!! Je suis têtu et quelque chose en moi me disait de continuer à chercher, les services sont capables de tourner sous un autre compte. Après 2 jours de recherche, j'ai enfin trouvé mon bonnheur ... une api windows
CreateProcessWithLogonW
est capable de lancer un processus avec un autre compte. C'est mis en place dans cette source.
Attention si on n'est pas dans un domaine il faut que le même compte existe sur le serveur ET sur le poste client.

Et bin ce ne fut pas sans mal. Je tiens à remercier Google, Coq, et enfin ma voix intérieur sans qui je ne posterai pas ce message
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Salut,

Sans faire tourner l'application sous un autre compte que celui de l'utilisateur (ou faire de l'emprunt d'identitié au niveau du code qui réalise les I/O) j'ai peur qu'il n'y ai pas vraiment de solution.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

bah c'est ca que je veux faire : "sans faire tourner l'application sous un autre compte que celui de l'utilisateur" je voudrais que l'utilisateur garde sont compte "toto" classique avec ses droits mais qu'on puisse faire comme "executer en tant qu'administrateur" ou plutôt "executer en tant que sauveur" (c'est le nom du compte  )
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Ben voilà donc si tu as besoin que seules certaines portions du code utilisent les privilèges et droits de "sauveur" tu es parti pour de l'emprunt d'identité.
Le tout est de faire ça de manière propre (pas de mot de passe dans le code ou je ne sais où) : si un prompt pour les credentials est envisageable ça ne devrait pas poser trop de problèmes.
Je n'ai jamais eu l'occasion de pousser les investigations sur ce genre de sujet donc je ne pourrais pas plus t'aider.
Ensuite une autre question est de savoir si tu as réellement besoin d'effectuer ces actions dans le même processus ou alors celles-ci peuvent être déléguées à un autre processus qui pourrait être mit en place et démarré sans l'intervention de l'utilisateur.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

Ok pour la propreté le login et mot de passe sont stocké dans un xml qui est crypté en sha. La clé est planqué dans le code, est le code pourra être obstrué après. C'est une appli qui sera utilisé uniquement sur un site en local donc si il y en as un qui est chopé en en train de faire du reflector, la direction risque de pas aimer .
Merci pour les pistes du credentials j'ai trouvé ceci qui parle des credentials ca à l'air simple je vais essayer.
http://www.codeguru.com/csharp/csharp/cs_network/windowsservices/article.php/c12357/
Et ca aussi mais là ca à l'air uzine à gaz
http://www.codeproject.com/KB/security/cgsecurity.aspx
P
ar contre ton histoire de processus autre là j'ai pas compris ca m'aide pas vriament si ?
En tout cas merci pour ton aide coq.
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
84
Pour le premier lien, j'avais abordé un sujet similaire ici : http://www.csharpfr.com/codes/NETWORK-SHARE-CONNEXION-PARTAGE-RESEAU-AVEC-AUTHENTIFICATION_34841.aspx

"C'est une appli qui sera utilisé uniquement sur un site en local donc si il y en as un qui est chopé en en train de faire du reflector, la direction risque de pas aimer"
Et si c'est quelqu'un qui s'en fiche, est sur le départ (dans de mauvaises conditions), à la possibilité de prendre les binaires pour regarder peinard chez lui ?
Reflector n'est pas non plus le seul outil : un simple petit coup d'ildasm en ligne de commande et le tour est joué, plus qu'à lire un simple fichier texte.

Pour l'histoire du processus, je ne sais pas si ça t'aide, c'est à toi de voir si dans ta problématique ça peut aller.
S'il s'agit de faire des backups de fichiers, ça pourrait coller.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

Pour ton lien j'avais déjà essayé sans succès, mais je vais ressayer ca ne coute pas grand chose, j'avais peut être loupé un truc.

Exact c'est bien vu, j'avais pas pensé à ca. Donc ca vaut le coup d'attacher un peu plus d'importance. Et obstruer le code avec les chaines cryptés ca serait déjà un bon point pour décourager (c'est le but).

Et pour le processus nan ca colle pas ca fait pas que d'autres choses.
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

Bon là je jette l'éponge, je n'y arrive pas. Je vais faire autrement. Je vais installer un serveur ftp sur le serveur, et les transferts seront fait comme ca, j'espère que je pourrais faire ce que je veux. Je vais m'inspirer de cette source pour développer une classe pour que se soit le plus transparent possible.
Merci pour l'aide.