0

DUPLICATE : GINA を使用したログイン方法のカスタマイズ


こんにちは、みんな、

GINA でマスターを見つけるのは簡単ではないことはわかっていますが、私の質問はプロセス間通信 (IPC) に最も近いものです。カスタム GINA をアンマネージ C++ で作成し、ユーザーの指紋の有効性をチェックするメソッドを含めました。ログインするには、この関数は、c# で記述された実行中のシステム Windows サービスで何らかのメソッドを呼び出します。コードは次のとおりです。

GINA で、アンマネージ C++

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

Windows サービスでは、C#

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

GINAとWindowsサービスの間、または単にC ++で書かれたサービスとC#で書かれたサービスの間でそのような通信を行う方法を知っている人はいますか?

ありがとう

4

1 に答える 1

0

サービス (ま​​たは、セッション/デスクトップの境界を越える必要がある可能性があるほとんどの IPC) と通信する標準的な方法は、名前付きパイプです。メールスロットも使用できますが、メールスロットメッセージはインストールされているすべてのプロトコルで複製されるため、複製の問題に対処する必要があります。そのため、何らかのタグ付けシステムが必要です...ちょっと面倒です.

CreateNamedPipe のドキュメントを参照して、そこから抜け出してください。私はパイプを使用して C++ と C# の間で話しました。(両側からの) C# パイプのサンプル コードがここにあります

特定のサービス間通信の問題にパイプを使用する利点は、必要に応じて後で設計を拡張して UI をサポートできることです。

于 2009-02-07T15:30:35.737 に答える