2009-02-07 6 views
0

DUPLICATE: Login method Customization using GINAConnexion méthode de personnalisation à l'aide GINA


Salut à tous,

Je sais qu'il est difficile de trouver un maître GINA, mais ma question est le plus proche de Interprocess Communication (IPC), J'ai écrit mon GINA personnalisé en C++ non géré, je l'ai inclus une méthode qui vérifie la validité d'une empreinte digitale pour l'utilisateur essaye de se connecter, cette fonction appellera une méthode dans un service Windows écrit en C#, le code suit:

dans GINA, c non géré ++

if(Fingerprint.Validate(userName,finerprintTemplate) 
{ 
    //perform login 
} 

en service Windows, C#

public class Fingerprint 
{ 
    public static bool Validate(string userName, byte[] finerprintTemplate) 
    { 
     //Preform Some code to validate fingerprintTemplate with userName 
     //and retuen result 
    } 
} 

Est-ce que quelqu'un sait comment faire cette communication entre GINA et le service Windows, ou tout simplement entre C++ le service écrit et C# écrit un service.

Merci

+0

Je pense que vous avez une dupe ici. Il y a deux copies de cette question. –

+0

Oui je vois, que puis-je faire ?? – netseng

+0

Voir la où il est dit "supprimer" sous les balises? Cliquez ça –

Répondre

0

La méthode canonique pour communiquer avec un service (ou plus IPC qui doit éventuellement traverser une session/limite de bureau) est un tube nommé. Vous pouvez également utiliser les mailslots, mais vous devez gérer les problèmes de duplication, car les messages mailslot sont dupés sur tous les protocoles installés, vous avez donc besoin d'un système de marquage. Consultez les documents pour CreateNamedPipe et travaillez votre chemin à partir de là. J'ai parlé entre C++ et C# en utilisant des tuyaux: l'interop est un peu désordonné (messages binaires), mais c'est faisable. Il y a un exemple de code pour les pipes C# (des deux côtés) here. La bonne chose à propos de l'utilisation d'un tuyau pour votre service spécifique à un problème de communication est que vous pouvez étendre la conception plus tard pour prendre en charge une interface utilisateur si vous en avez besoin.

Questions connexes