You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Yubico YubiKey SDK在.NET中识别FEITIAN USB FIDO设备?

解决方案

首先明确:Yubico.YubiKey SDK是专门为YubiKey系列设备设计的,无法直接识别FEITIAN这类第三方FIDO设备。要获取FEITIAN的FIDO设备,需要使用通用FIDO2标准库或低层级USB枚举工具,以下是具体可行方案:


方案一:使用通用FIDO2库(推荐)

使用Fido2NetLib(.NET生态中常用的FIDO2标准实现),可以直接枚举所有符合FIDO标准的设备,包括FEITIAN设备。

  1. 安装NuGet包
    通过NuGet包管理器或.NET CLI安装:

    Install-Package Fido2NetLib
    # 或.NET CLI命令
    dotnet add package Fido2NetLib
    
  2. 枚举FIDO设备代码示例

    using Fido2NetLib;
    using System;
    using System.Threading.Tasks;
    
    class FidoDeviceScanner
    {
        static async Task Main(string[] args)
        {
            var fido2 = new Fido2();
            var devices = await fido2.GetDevicesAsync();
    
            foreach (var device in devices)
            {
                Console.WriteLine($"设备ID: {device.Id}");
                Console.WriteLine($"设备名称: {device.ProductName}");
                Console.WriteLine($"厂商: {device.VendorName}");
                // 可进一步获取设备详细FIDO信息
                var info = await device.GetInfoAsync();
                Console.WriteLine($"支持协议版本: {info.Version}");
                Console.WriteLine("---");
            }
        }
    }
    

方案二:低层级USB枚举(需管理员权限)

如果需要直接通过USB硬件信息识别FEITIAN设备,可以使用LibUsbDotNet库,通过FEITIAN的USB厂商ID(VID)过滤设备(FEITIAN通用VID为0x096E,具体PID需参考对应设备规格)。

  1. 安装NuGet包

    Install-Package LibUsbDotNet
    
  2. USB设备枚举代码示例

    using LibUsbDotNet;
    using LibUsbDotNet.Main;
    using System;
    
    class UsbDeviceScanner
    {
        static void Main(string[] args)
        {
            // FEITIAN的USB厂商ID
            var feitianVid = 0x096E;
            using (UsbDevice usbDevice = UsbDevice.OpenUsbDevice(new UsbDeviceFinder(feitianVid)))
            {
                if (usbDevice == null)
                {
                    Console.WriteLine("未连接FEITIAN USB设备");
                    return;
                }
    
                Console.WriteLine($"找到设备: {usbDevice.Info.ProductString}");
                Console.WriteLine($"厂商ID: {usbDevice.Info.VendorId:X4}");
                Console.WriteLine($"产品ID: {usbDevice.Info.ProductId:X4}");
            }
        }
    }
    

注意:此方案需要运行程序时拥有管理员权限,且部分设备可能需要安装专用USB驱动。

内容的提问来源于stack exchange,提问作者Parshuram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 01:15:54