2011-01-31 9 views
8

スマートカード用にC#(.NET)でどのようにプログラムを開始する必要がありますか? 最初に、カードリーダー(Omnikeyなど)の名前は何ですか、 とする必要があります。C#smartcards programming

答えてくれてありがとう、Ales。

答えて

13

Aバックしながら、私はいくつかのシンプルで簡単なスマートカードのコードであると私はそれが公園には徒歩ではなかった、あなたを伝えるようにするつもりだったと思ったものを書かなければなりませんでした。まず、スマートカードに関する優れた情報はネット上では入手しにくいことが判明しました。いくつかのWebサイトが見つかったとき、基礎となるWin32 API呼び出しと、他の低レベルのものについての議論がたくさんありましたが、それは読みにくいものです。

事はそれらが理由でスマートカードと呼ばれていることです。その理由は、基本的には、組み込み型マイクロプロセッサーが、理解して応答するコマンドを送信することによって、組み込み型マイクロプロセッサーと対話しているということです。メーカーの多くが独自のコマンドを実装することをお勧めしていたため、これは少し複雑になる可能性があります。多くのことが、使用しているカードの種類に左右されます。その上にスマートカードのように見えるカードがありますが、実際にはスマートカードではなく、「標準」スマートカードインターフェースも使用しないので、読者を喚起するためにWindows SmartCard APIを使用することになります。休息のための彼らのウェブサイトのいくつかのあいまいなコーナーでの.libとして提供し、スマートカードリーダーの特別なAPI ...

まあ、私は最終的に取り組んで私のアプリを手に入れたが、私が言ったように、それは簡単ではありませんでした。いずれにせよ、私はそれを行うことはそれほど困難ではないと仮定して大きなミスを犯しました。

あなたが本当にスマートカードを取得したいのであれば、あなたの最良の賭けは、その件に関する良い本を得ることでしょうが、私も初心者よりも少し上手なので、本当にあなたを助けません。ウェブサイトについては

、私は掘ることができたC#の観点から最も有用な事はA Smartcard Framework for .Netました。著者は同じですが、これはmichaelvdnestが投稿した記事と同じ記事ではありません。リンク先の記事ではネイティブスマートカードAPIのC#ラッパーについて説明していますが、michaelvdnestのXMLはミックスに追加されていますが、まだ読んでいないためにどのような方法で正確にわかりません。

だから、記事と幸運に付属のコードを解剖を開始。記憶が私に役立つならば、読者列挙のものはかなり簡単に見つけることができます。

http://www.smartcard-api.com/index.shtml

+0

この長い回答ありがとうございます:)私同僚はすでに私には長い道のりがあると言われましたが、彼は私を助けませんでした。さて、私はそれが完了することができ、リンクのおかげで、私はすでにそれを発見したと私は今読んで、それを処理している知っている。 – Thorusan86

+0

@sqlあなたはStackoverflowの新人ではありません。新しい質問をする。 – dandan78

+0

あなたはそれが公園の散歩ではないことについて冗談ではありません。私たちの開発者の一人は以前に参照された記事に基づいてコードを実装していたので、カードを読むことで問題は生じませんでしたが、私はヨーロッパのデジタルタコグラフカードから保護されたデータを読み取るための認証方法を理解するのに苦労しています。スペックを読むことは、泥を通って水泳するようなものです。 –

3

は、コードプロジェクトにSmart Card Framework for .NETをチェックしてください。スマートカードアプリケーションをプログラミングする.NETのXMLフレームワークについて説明しています。

+0

私はこれをやっていますが、私はまだそれに取り組んでいます。ありがとう! :) – Thorusan86

+0

これは同じ人で、より新しいです:http://www.codeproject.com/Articles/16653/A-Smart-Card-Framework-for-NET – VoteCoffee

1

私は

しかし

はあなたがここに個人的な使用のprofessionallライブラリのために非常に使いやすく、そして無料で入手することができます.....それは仕方後半知っていますそれができたら、APDUとカード間でのやりとりの仕方を理解する必要があります。

実際には、私は標準のすべての共通要素を読むコードを持っています&ピンEMVカード残念ながら、金融サービスクライアントのために書かれていますので、私はあなたにそれを与えることはできませんあなたがカードを読むのを引き受ける必要があるもののいくつかを説明することができます。

他のカードの場合は、カードリーダーと空のカードがあるなど、カード自体には下がありますが、アクセス方法はわかっているものの一部のカスタムデータがありますいくつかの古いサテライトと、もう一度異なる旅行カード。

あなたはここにいくつかのアイデアを得ることができます:

How do I read the PAN from an EMV SmartCard from Java

を、ここで発見される一般的なスマートカード上の情報の多くがあります:

http://www.wrankl.de/SCH/SCH.html

特に一般的なもの(そのうちのいくつかがあります)

0

私はVisual Studio 2015のアプリケーションを使ってdスマートカード。あなたがしたいことは、スマートカードリーダであるコンピュータにUSBデバイスを接続することです。次に、あなたが探している情報のリターンを繰り返します。読者はかなりの特性を持っていますが、ここでは私が使いたいものがあります。

static List<USBDeviceInfo> GetUSBDevices() 
    { 
     List<USBDeviceInfo> devices = new List<USBDeviceInfo>(); 

     ManagementObjectCollection collection; 
     using (var searcher = new ManagementObjectSearcher(@"Select *  FROM Win32_PnPEntity where Description Like ""%Smart%card%""")) 
      collection = searcher.Get(); 
     string Device_ID = ""; 

     foreach (var device in collection) 
     { 
      devices.Add(new USBDeviceInfo(
      (string)device.GetPropertyValue("DeviceID"), 
      (string)device.GetPropertyValue("PNPDeviceID"), 
      (string)device.GetPropertyValue("Name"), 
      (string)device.GetPropertyValue("Description"), 
      (string)device.GetPropertyValue("Status"))); 


      Device_ID = (string)device.GetPropertyValue("DeviceID"); 

     } 

     collection.Dispose(); 
     return devices; 
    } 
関連する問題