ユーザーがブラウザーに保存されているデジタル証明書を使用して接続するC#Webアプリがあります。
これまで見てきた例から、SSLを有効にすると、Request.ClientCertificateを使用して証明書のフィールドにアクセスし、ユーザーの名前を確認できるため、IDの確認が簡単になります。
ただし、ユーザーから送信されたデータ(いくつかの単純なフィールドとバイナリファイル)に署名して、どのユーザーがデータベースの各レコードに入力したかを確実に証明できるようにすることも求められています。
私たちの最初の考えは、フィールド(および可能であればファイルのmd5)を含む小さなテキスト署名を作成し、証明書の秘密鍵で暗号化することでしたが...
私の知る限り、証明書の秘密鍵にアクセスしてデータに署名することはできません。また、ブラウザのフィールドに署名する方法があるかどうかもわかりません。または、Javaを使用する以外に選択肢はありません。アプレット。後者の場合、どのように実行しますか(使用できるオープンソースアプレットはありますか?自分で作成した方がよいでしょうか?)
もちろん、ユーザーの証明書からアクセスできるデータを使用して、サーバーで受信したフィールドに「署名」する方法があればもっと良いでしょう。しかし、そうでない場合は、問題を解決するための最良の方法に関する情報をいただければ幸いです。