Acces Outlook à partir d'une DLL VB.Net [Résolu]

cs_Pijay 21 Messages postés mardi 6 mars 2007Date d'inscription 12 juillet 2007 Dernière intervention - 13 avril 2007 à 16:16 - Dernière réponse : cs_Pijay 21 Messages postés mardi 6 mars 2007Date d'inscription 12 juillet 2007 Dernière intervention
- 31 mai 2007 à 18:24
Bonjour à tous,

Je suis actuellement en train de développer une DLL en VB.Net.

Dans un premier temps, j'ai réussi à développer une DLL qui contient une fonction permettant de concatener 2 chaines de caracteres. Cette librairie fonctionne tres bien lorsque je l'appel avec Excel, Access ou encore VB6.

Jusque là tout  va bien......

Je souhaite maintenant implémenter dans ma DLL une fonction qui envoi un mail avec OutLook.
J'ai développé ma fonction en m'aidant d'une méthode que j'avais développé en VBA (et qui marche tres bien)

Le probleme se pose a ce niveau la..... car lorsque j'apppel ma méthode avec Excel (par exemple), une erreur intervient :


                         

J'ai essayer de me documenter sur les divers méthode de Sécurité de l'assembly. J'ai trouvé plusieurs fonctions telle que :   <
Assembly: AllowPartiallyTrustedCallers()>



Sans succès......

Toutes les fonctions de ma DLL qui ne font pas appel a des programme exterieures fonctionnne tres bien. Je sais donc qu'il y a probleme au niveau de l'acces à Outlook via ma DLL.

Je ne suis pas Admin sur ma machine, peut etre que ca vient de là ?

Voici le code de mon Assembly :




Imports System.Security

Imports System.Security.Permissions

Imports System.Reflection

Imports System.Runtime.CompilerServices

Imports Microsoft.VisualBasic

Imports System.Runtime.InteropServices



Imports



Microsoft
Imports Microsoft.Office
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Core
Imports System.Diagnostics



' Review the values of the assembly attributes
< Assembly : AssemblyTitle("")>
< Assembly : AssemblyDescription("")>
< Assembly : AssemblyCompany("")>
< Assembly : AssemblyProduct("")>
< Assembly : AssemblyCopyright("")>
< Assembly : AssemblyTrademark("")>
< Assembly : CLSCompliant( True )>



'The following GUID is for the ID of the typelib if this project is exposed to COM
< Assembly : Guid("368A9A44-1C23-4414-B466-3008EDD64B68")>

< Assembly : AssemblyKeyFile("H:\My Documents\Stage_2007\Projet\2_DLL\Test_Essais\Library_Mail\Key.snk")>

< Assembly : AssemblyVersion("1.0.*")>


<




Assembly


: AllowPartiallyTrustedCallers()>

Si quelqu'un sait comment acceder à Outlook Via une DLL.Net (VB.Net), je suis ouvert à toutes informations qui pourraient me dépanner.

Merci d'avance.
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
cs_Pijay 21 Messages postés mardi 6 mars 2007Date d'inscription 12 juillet 2007 Dernière intervention - 31 mai 2007 à 18:24
3
Merci
J'ai trouvé d'ou vient le probleme, je pense que ca peut aider certain.

En effet, les composant .Net sont géré par le CAS(Code Acces Security). En fonction de la stratégie de sécurité, les composants .Net n'ont pas le meme statut en fonction de l'endroit ou ils se trouvent. Par exemple, une DLL.Net n'a pas les memes droits en local que sur l'Intranet d'une entreprise. En effet, par defaut la politique de sécurité du .Net considere les composants d'un intranet (ou d'internet) comme des composants à confiance partielle ("Partially Trust").

Ce qu'il faut savoir, c'est que implicitement les applications ou librairies .Net font appel à des composants installés en local comme mscorlib.dll (GAC ou System32/). Ces composant (mscorlib.dll ou mscoree.dll par exemple) exigent d'etre appelé par des composants de confiance totale ("Full Trust"). Ce qui n'est pas le cas d'un composant placé sur le réseau (Intranet ou Internet).

Pour déployé une librairie.Net sur un réseau (d'entreprise par exemple), il faut obligatoirement avoir les droits d'administration sur les machines clients pour modifier la politique de sécurité du .Net Framework (utilisation du .Net Configuration Tool > voir méthode sur le net, il y en a plein)

Si vous ne posseder pas les droits d'administration (mon cas), vous etes obligé d'installer votre compsant.Net (dll) en local (pour qu'il soit considéré comme un composant "Full Trust").

Donc voila, un petit résumé de plusieurs jours de recherche. Je sais pas si ca peut aider quelqu'un, mais vu la difficulté que j'ai eu à trouver des informations concretes sur le déploiement de DLL.Net, je prefere laissé ce post.

Merci à tous. Bye.

Merci cs_Pijay 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_Pijay

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.