代码之家  ›  专栏  ›  技术社区  ›  netseng

登录方式使用GINA自定义[复制]

  •  0
  • netseng  · 技术社区  · 17 年前

    重复 : Login method Customization using GINA


    大家好,

    我知道在GINA中找到一个master并不容易,但我的问题最接近进程间通信(IPC),我用非托管c++编写了我的自定义GINA,我为它添加了一个方法,用于检查用户尝试登录时指纹的有效性,这个函数将调用用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#编写的服务之间进行这种通信吗。

    谢谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   Bob Moore    17 年前

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

    请参阅CreateNamedPipe的文档,然后从那里开始。我曾使用管道在C++和C#之间进行过讨论:互操作有点混乱(二进制消息),但它是可行的。有一些C#管道的示例代码(来自两侧) here .

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

    推荐文章