C# 使用GINA定制登录方法

C# 使用GINA定制登录方法,c#,.net,windows-services,login,ipc,C#,.net,Windows Services,Login,Ipc,重复: 大家好 我知道在吉娜中找一个主控主机并不容易,但是我的问题最接近进程间通信IPC,我在非托管C++中编写了我的自定义吉娜,我把它包含了一个检查用户指纹的有效性的方法,用户尝试登录,这个函数将调用一个运行在C中的系统Windows服务,守则如下: 在GINA中,非托管c++ if(Fingerprint.Validate(userName,finerprintTemplate) { //perform login } 在windows服务中,C public class Fing

重复:

大家好

我知道在吉娜中找一个主控主机并不容易,但是我的问题最接近进程间通信IPC,我在非托管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
   }
}
谁知道如何在吉娜与Windows服务之间进行通信,或者简单地在C++写服务和C写服务之间进行通信。
感谢

与可能需要跨越会话/桌面边界的服务或大多数IPC通信的标准方法是命名管道。您也可以使用mailslot,但您必须处理复制问题,因为mailslot消息在所有已安装的协议中都会被复制,因此您需要某种标记系统。。。有点乱

查看CreateNamedPipe的文档,然后从中找到解决方法。我用Cube和C++讨论了:互操作得到了一些凌乱的二进制消息,但是它是可行的。两边都有一些C管道的示例代码


使用管道解决特定的“服务到服务”通信问题的好处是,如果需要,您可以稍后扩展设计以支持UI。

我认为您遇到了一个难题。此问题有两份副本。请参阅标签下的“删除”位置?点击那个。