Tôi cần phải cho phép người dùng ứng dụng của mình ký vào các chấp thuận của họ bằng mã thông báo bảo mật USB cá nhân của họ.Cách nhận thông tin từ mã thông báo bảo mật với C#
Tôi đã quản lý để đăng nhập dữ liệu nhưng tôi chưa thể nhận được thông tin về mã thông báo của ai đã được sử dụng để làm như vậy.
Dưới đây là đoạn code tôi có cho đến nay:
CspParameters csp = new CspParameters(1, "SafeNet RSA CSP");
csp.Flags = CspProviderFlags.UseDefaultKeyContainer;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
// Create some data to sign.
byte[] data = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 };
Console.WriteLine("Data : " + BitConverter.ToString(data));
// Sign the data using the Smart Card CryptoGraphic Provider.
byte[] sig = rsa.SignData(data, "SHA1");
Console.WriteLine("Signature : " + BitConverter.ToString(sig));
Có một lĩnh vực thông tin thẻ được gọi là "Mã Name". Làm cách nào để truy cập vào trường đó để xác thực mã thông báo đã được sử dụng để ký duyệt?
thông tin aditional và cập nhật:
- "tên Mã" luôn luôn phù hợp với tên của chủ sở hữu (người dùng những người sở hữu usb token)
- Nó có vẻ như nó không thể được thực hiện , có thể có dịch vụ web hoặc điều tôi cần gọi để nhận thông tin trực tiếp từ cơ quan cấp chứng chỉ.
Có lẽ đây là chi tiết của một câu hỏi về an ninh .stachexchange.com? – MiMo
Có vẻ như bạn sẽ cần trích xuất [Modulus] (http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters.modulus.aspx) dưới dạng vân tay chứng chỉ và sau đó so sánh với cơ sở dữ liệu của tất cả các dấu vân tay của chứng chỉ có sẵn. Có lẽ giống như ['byte [] modulus = rsa.ExportParameters (sai) .Modulus;'] (http://attercop.googlecode.com/svn-history/r8/trunk/AttercopClient/SettingsWindow.cs) – oleksii
@oleksii I không có cơ sở dữ liệu modulus. Tôi cần lấy tên "Token" và so sánh nó với tên người dùng AD hiện tại. Cám ơn bạn đã góp ý. – daniloquio