Hobby::.NETの最近のブログ記事

前の10件 1  2  3  4  5  6  7

まだマニュアルはない。

例のブツ

クライアント版の方。
いろいろ変えた。

とりあえず、置いておく。

サーバー版も同程度にはできている。

けど、これだと サーバー版=クライアント版+SSL証明書設定 ってだけで、あまり差が無いので、クライアント版にはクライアント版独自機能を盛り込む予定ではある。
#モバイル用途に超便利な機能を予定。

前回と同様、6月末期限&サービス起動後3分で停止なので、注意。

(追記)
マネージャーにバグがあります。

いえっふー、動いたぜ

| コメント(0) | トラックバック(0)

昨日のあれ、なんとか動いた。

いろいろあったけど、利用する証明書は秘密鍵付きじゃないとマズイってことは重要なのでメモ。
公開鍵暗号なんだから、復号化する際に必要なので、当然なんだけど・・・

昨日の画面を見ればわかる人はわかるけど、今回のサーバー版ってのには、Hosts書き換えを不要にする仕掛けを入れてあるので、とても便利。
つまり、受け取った証明書のホスト名が検証されるので、ホスト名が一致している必要があるのだけど、これを接続先アドレスと別に用意できることで、解決しちゃうという、当たり前っちゃー当たり前なことなんだけど、忘れがち。
#クライアント版にも反映したい。

これで、バックエンドサーバーと同じ証明書を利用して、SSL-SSLの簡易プロキシ(ポートフォワード)としてポートを公開することもできる。

既出クライアントのサーバー版

やっと、ポートListenできた。
#多分、証明書も読み込めているとは思うのだが、netstatでポートListenの確認まで。

本当に使えるかは、これから確認。

Managerで設定保存するとサービスが自動的に設定再読み込みしてくれるのはクライアント版と同様。
超手間要らず設計。

あとは、オレオレエンタープライズ証明書取得方法文書化ってやつをやっておかなきゃな・・・
#Windows Only。

System.Net.IPAddressのコンストラクタに渡す文字列をチェックしたかったのだが、IPv4表記ならば楽にバイト列化できるけど、IPv6の場合短縮表記やら、インタフェースIDやら、IPv4埋め込みやらで、やたらと手間がかかる・・・と思っていた。

%や:や.で分割して、0埋めが必要ならどれだけか調べて置換・・・とか、いろいろやったんだけど、結局のところ、

System.Net.IPAddress.Parse
System.Net.IPAddress.TryParse

この2メソッドが異様に強力ということに。
かなり適当な表記でも、正しければIPAddressに変換してくれる。
コンストラクタ要らずで、超便利。

ただし、インタフェースID部分は数値である必要があるらしい。

VS2008落ちまくる

| コメント(3) | トラックバック(0)

VS2008(SP1)が落ちる。

「ツールボックス」で「アイテムの選択」をすると100%落ちる。

VS2010との同居に問題があるのか、よくわからない。

しかも、サクッと落ちて、例のデバッグしますか?も表示されないので、気付かないほど。

ツールボックス使わなくても何とかなるからいいんだけど、ついやっちゃった場合、未保存コードがパァになるので、注意せねば・・・

入力文字制限

| コメント(0) | トラックバック(0)

Windowsフォームアプリで入力文字を制限するのに、MaskedTextBoxを使うのはいいのだけれど、これ、マスクできる文字種が少なすぎるという欠点がある。
たとえば、16進数で可変長の文字列入力をさせたいなんて、単純なことなのにもう無理。
なんともし難い。

仕方なく、TextBox派生で、文字制限をかけるコンポーネントを実装。
でも、WndProcをオーバーライドしなきゃならんとか、コピペのことまで考えなきゃならんとか、まわりくどいことこの上ない感じ。

もっとスマートな方法があるような気がするのだが・・・
OnTextChangedはあっても、OnTextChangingは無いんだよなぁ。

この件。
性能まで考えると、やはり、アンマネージC/C++にしたほうがいいのかも知れない・・・

20100524_OverSslClientSetup.zip

TCP通信をSSL暗号化するものである。
マニュアルはまだない。
アルファ版でござる。

マネージャとサービスから成り立っている。
Yahoo!のメール設定をプリセットしてある。

Vector登録するまでには及んでいない(後述のIPv6とかに対応したい)ので、ここに置いておく。
.NET Framework 2.0~3.5xに対応している・・・はず(VS2010でビルドしたので、ちょっと不安)。
Windows 7の64bitでも、動く(32bitターゲットだから、WOW64上ってことになる)のを確認済み。

そうそう、サービスは起動後3分経つと自動停止することに加え、使用期限は2010年6月いっぱいに設定してあるので、もしも気に入って金払ってでも使いたいとかいう奇特な人いらっしゃればコメントを。

usingに関するメモ

| コメント(0) | トラックバック(0)

C#で勝手にDisposeしてくれる方のusing。

例外出てもDispose呼んでくれるので便利だけど、気になって確認したのでメモ。

  • using(A hoge1 = new A(), hoge2 = new A()) { } と、
    using(A hoge1 = new A()) {using(A hoge2 = new A()) { } } は処理順も同じなので、安心して使ってよい。
  • usingで対応できるのは、変数に代入できた場合のみ。
    たとえば、using(A hoge = new A()) で、Aのコンストラクタ処理で例外発生した場合にはhoge.Dispose()は呼ばれない。

まぁ、当たり前っちゃー当たり前だけど、後者は重要な気がする。
どんな場合でもDispose呼んでくれると思って、コンストラクタ等で例外出しまくると、意図しないことになる可能性があるってことだ。

20100521_X509Certificates_Test1.zip (実行ファイルの圧縮)

とりあえず、昨日のコードをごにょごにょして、ここまで解析できることがわかった。

でも、証明書スナップインで表示されるような「目的」を一部を除いた大部分で取得することができていない。
どうやって取ってきてるんだろうか・・・

証明書ストアにアクセスする必要があるので、コードメモ。

表示用に文字列にしたけど、ひとまずアクセスできることを確認。

使えそう。

前の10件 1  2  3  4  5  6  7

サイトカウンタ

Total: 211,632 Hits, (Recent24Hours: 0 Hits)
~ Since 2010/01 ~

埋め込みツイッター

取得失敗;;
Now: 2024/03/29 7:24:02 JST

このアーカイブについて

このページには、過去に書かれたブログ記事のうちHobby::.NETカテゴリに属しているものが含まれています。

次のカテゴリはHobby::C++です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

2024年2月

 日   月   火   水   木   金   土 
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29    

埋め込みQRコード