ASP.NETフォームのWacom署名

weirdgyn

アプリケーション自体によって作成されたドキュメントにサインアップするためにWacomタブレット(STU-430)署名を使用する必要があるASP.NETWebフォームアプリケーションを作成しています。

ASP.NETアプリケーションはWebサーバー上で実行され、リモートクライアント(Wacom COMオブジェクトを使用しているため現時点ではInternetExplorerのみ)が署名用のタブレットを所有/処理します。

Webフォームには、署名を収集/キャプチャするためのコードのみを埋め込む必要があります。署名処理は、Webサーバーによってリモートで処理される必要があります。

Wacom HTMLサンプルは、javascriptとCOMを使用して、クライアント側のhtmlページがフォームの要素内に署名を「保存」する署名をキャプチャできるようにします。簡単に言うと、これは「署名」の前のHTMLドキュメント構造です。

  <div id="signatureDiv">
    Signature image:<br/>
    <img id="signatureImage"/>
  </div>

これは、署名の後のHTML構造です。

<div id="signatureDiv">
    Signature image:<br/>
    <img id="signatureImage" src="data:image/jpeg;base64,/9j/....">
</div>

COMオブジェクトは、クライアントサイトのDOM構造を「変更」し、「img」プレースホルダー「...」内に署名画像のバイナリデータを「挿入」します。

問題は...クライアントDOM構造内の要素のデータを取得してサーバーに送信し、署名を「処理」して正しく処理/保存するにはどうすればよいですか?

非表示のフォームフィールド内にimgデータのバイナリコンテンツを「保存」し、これをゲートウェイとして使用してデータを投稿することは可能ですか?

よろしく、ミケーレ

weirdgyn

私は解決策を見つけました。これが他の誰かを助けることができることを願っています:

1)WACOMタブレットを使用するものの開発を開始する前に、署名のキャプチャプロセスに時間がかかる可能性があることを考慮してください(私の経験では、フォームで署名をデジタル化するのに40秒もかかりました)。

2)WACOMによって提供されるコードは機能します(少なくともc#の例とHTMLの例は機能します)。

3)Webフォームソリューションを開発する場合は、HTMLコードサンプルに加えて、少しのJSといくつかのC#またはVBコーディングが必要です。

4)Windows 8.1 64ビットシステム(Win 7でチェックする必要があります)では、2回目に署名を配置するときに、描画中にWACOMタブレットが署名を「表示」しない可能性があります...ブラインド署名後に[OK]を押すと、「署名」がクライアントに送信されます。システムを元に戻す唯一の方法は、USBポートのプラグを抜いて再度差し込むことです。

Webフォームでは、次のようなものを配置する必要があります。

HTML:

<link rel="stylesheet" type="text/css" href="Signature.css" />
<script type="text/javascript" src="BigInt.js"></script>
<script type="text/javascript" src="sjcl.js"></script>
<script type="text/javascript" src="Signature_encryption.js"></script>
<script type="text/javascript" src="Signature.js"></script>

<script type="text/javascript">
    var _signatureForm = null;

    function initDemo() {
        if (_signatureForm == null)
        {
            var _signatureImage = document.getElementById("signatureImage");

            _signatureForm = new SignatureForm(_signatureImage);
        }

        _signatureForm.connect();

        return false;
    }

    function signForm() {
        var _signatureImage = document.getElementById("signatureImage");
        var _hdnSignature = $("input[id$='_hdnSignature']");

        _hdnSignature.value = _signatureImage.src;

        return true;
    }
</script>

<form id="_frmMain" runat="server">
<div>
    <div id="signatureDiv">
        Signature image:<br />
        <img id="signatureImage" />
    </div>
    <div>
        Actions:<br />
        <asp:Button ID="signButton" runat="server" Text="Capture" OnClientClick="javascript: return initDemo();" />
        <asp:Button ID="_btnSign" runat="server" Text="Sign" OnClientClick="javascript: return signForm();" OnClick="_btnSign_Click" />
        <asp:HiddenField ID="_hdnSignature" runat="server" />
    </div>
</div>
<object id="wgssSTU" type="application/x-wgssSTU" ></object>
</form>

この例で参照されているすべての.jsファイルは、Wacom SDKHTMLサンプル内で提供されているものです。

ダーティジョブは、画像を取得して非表示フィールドに挿入するsignForm()関数によって実行され、分離コードプロシージャが署名を処理できるようにします。

セクションの背後にあるコード(私の場合はC#)は非常に単純です。ボタンイベントを処理し、画像をデコードするだけです。

protected void _btnSign_Click(object sender, EventArgs e)
{
    string _sImage = _hdnSignature.Value.Replace("data:image/jpeg;base64,", "");

    byte[] _rgbBytes = Convert.FromBase64String(_sImage);

    string _sImageFile = Guid.NewGuid().ToString().Replace("-", string.Empty);

    _sImageFile += ".jpg";

    using (FileStream imageFile = new FileStream(Server.MapPath("~/" + _sImageFile), FileMode.Create))
    {
        imageFile.Write(_rgbBytes, 0, _rgbBytes.Length);
        imageFile.Flush();
    }
}

WACOMタブレットはMETADATAを画像ファイルに埋め込まないことを考慮してください。コードに埋め込むことをお勧めします。

よろしく、マイク

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ページasp.netの複数のフォーム

分類Dev

ASP.Net WebForms + Paypalフォーム

分類Dev

ASP.NET Webフォームページのクラス属性(?)

分類Dev

ASP.NET-標準検証前のフォームの検証

分類Dev

Asp .net MVCRazor-フォームからのHTMLの投稿

分類Dev

ASP.NET MVC C#でのフォームの検証

分類Dev

JavaScriptでのasp.net MVCフォームの検証

分類Dev

ASP.NETでのフォームとボタンの問題

分類Dev

ASP.net Webフォーム-動的フォーム-C#

分類Dev

ASP.NET Webフォーム、WebAPI、およびAngularJSの統合

分類Dev

ASP.NET CoreのWebフォームに相当しますか?

分類Dev

ASP.Net WebフォームのAcceleratedMobile Pagesは可能ですか?

分類Dev

投稿時に空のasp.netコアmvcフォームviewmodel

分類Dev

ASP.NET MVC5フォームの検証

分類Dev

#= asp.net Webフォームの演算子?

分類Dev

asp.netとasp.netMVCのフォーム認証の違いは?

分類Dev

Asp.netMVCフォームの投稿

分類Dev

マスターページのASP.Netフォームと子ページ

分類Dev

同じビュー上の複数のフォーム(asp.net mvc)

分類Dev

ASP.NET MVC5フォームの検証とエラー処理

分類Dev

ASP.NET CoreRazorビューのUnicode正規化フォームC

分類Dev

ASP.NET Webサイト:複数のフォームを含むページ

分類Dev

ASP.NET Webサイト:複数のフォームを含むページ

分類Dev

asp.netフォームのキューイングスレッド

分類Dev

メール連絡フォームの送信c#asp.net Visual Studio 2012

分類Dev

DotNet HighChartsWebフォームでのエクスポートAsp.net

分類Dev

Web フォーム フレームワークでの ASP.NET VB 変更データベース接続

分類Dev

ASP.NET5クロスプラットフォームの実行

分類Dev

ASP.NET MVC4フォームの誕生日ボックス

Related 関連記事

  1. 1

    ページasp.netの複数のフォーム

  2. 2

    ASP.Net WebForms + Paypalフォーム

  3. 3

    ASP.NET Webフォームページのクラス属性(?)

  4. 4

    ASP.NET-標準検証前のフォームの検証

  5. 5

    Asp .net MVCRazor-フォームからのHTMLの投稿

  6. 6

    ASP.NET MVC C#でのフォームの検証

  7. 7

    JavaScriptでのasp.net MVCフォームの検証

  8. 8

    ASP.NETでのフォームとボタンの問題

  9. 9

    ASP.net Webフォーム-動的フォーム-C#

  10. 10

    ASP.NET Webフォーム、WebAPI、およびAngularJSの統合

  11. 11

    ASP.NET CoreのWebフォームに相当しますか?

  12. 12

    ASP.Net WebフォームのAcceleratedMobile Pagesは可能ですか?

  13. 13

    投稿時に空のasp.netコアmvcフォームviewmodel

  14. 14

    ASP.NET MVC5フォームの検証

  15. 15

    #= asp.net Webフォームの演算子?

  16. 16

    asp.netとasp.netMVCのフォーム認証の違いは?

  17. 17

    Asp.netMVCフォームの投稿

  18. 18

    マスターページのASP.Netフォームと子ページ

  19. 19

    同じビュー上の複数のフォーム(asp.net mvc)

  20. 20

    ASP.NET MVC5フォームの検証とエラー処理

  21. 21

    ASP.NET CoreRazorビューのUnicode正規化フォームC

  22. 22

    ASP.NET Webサイト:複数のフォームを含むページ

  23. 23

    ASP.NET Webサイト:複数のフォームを含むページ

  24. 24

    asp.netフォームのキューイングスレッド

  25. 25

    メール連絡フォームの送信c#asp.net Visual Studio 2012

  26. 26

    DotNet HighChartsWebフォームでのエクスポートAsp.net

  27. 27

    Web フォーム フレームワークでの ASP.NET VB 変更データベース接続

  28. 28

    ASP.NET5クロスプラットフォームの実行

  29. 29

    ASP.NET MVC4フォームの誕生日ボックス

ホットタグ

アーカイブ