我想在这里我想根据自己的HID卡值的用户进行身份验证的PoC。 我没有为读者任何特定的API。 读者输出卡通过键盘仿真的纯数字。
在PoC允许用户通过用户名/密码,或通过HID代理卡进行身份验证。 为了简化事情,我想用一个隐藏的TextBox
,以从HID读取值和相应的web服务从触发TextChanged
事件。
我无法做到这一点。 任何人都可以建议如何可以做到这一点,我很新的.NET环境。
我想在这里我想根据自己的HID卡值的用户进行身份验证的PoC。 我没有为读者任何特定的API。 读者输出卡通过键盘仿真的纯数字。
在PoC允许用户通过用户名/密码,或通过HID代理卡进行身份验证。 为了简化事情,我想用一个隐藏的TextBox
,以从HID读取值和相应的web服务从触发TextChanged
事件。
我无法做到这一点。 任何人都可以建议如何可以做到这一点,我很新的.NET环境。
使用该版本的阅读器装置(带有键盘仿真),你将需要某种形式的文本输入控件(如文本框)来捕获虚拟键盘发送文本。 你使用隐藏的文本框的方法的问题是,它不会获得焦点,而虚拟键盘“类型”卡ID。
所以,你需要拦截,而你所期望的卡ID任何UI元素具有焦点KeyDown事件。 例如,如果你有一个窗口,没有文本框(或其他元素消耗按键事件)已经关注的焦点,你可以尝试拦截窗口级别KeyPress事件:
<Window ...
KeyDown="onKeyDownHandler"
>
相应的处理方法是这样的:
private void onKeyDownHandler(object sender, KeyEventArgs e) {
// e.Key will give you the pressed key
}
因此,使用此处理程序,你应该能够收集由RFID读写器发送的所有虚拟按键。 因此,所有你需要做的是收集,并将其转化为文字。
更新:
该产品说明书显示,该阅读器的虚拟键盘版本可配置之前和卡ID后添加按键。 所以,你可能能够发现并屏蔽掉来自RFID读写器发送的输入即使重点是用户名或密码的文本输入字段通过添加一个用户名/密码卡ID之前不能出现字符/控制键码。 在接收到控制键码 - - 然后,你可以在这两个文本框拦截KeyDown事件,你可以消耗由虚拟键盘发送的所有按键。 通过标记与击键e.Handled = true;
,你应该能够从文本框隐藏它们。
作为替代方案,你可以使用阅读器的串行版本(例如USB虚拟COM端口)。 如果这是一个选项...然后,您可以通过串行连接而不是虚拟键盘接收卡的ID。 其结果是,你就可以轻松地用户输入和RFID阅读器输入区分因为两者都在不同的通信接口到达。