Blog Home  Home Feed your aggregator (RSS 2.0)  
light-hearted.net - Tuesday, August 03, 2004
人は計画を立て、神はそれを笑う
 
 Tuesday, August 03, 2004

最近仕事でActive Directoryの検証を(セキュリティ周りを中心に)行っています。

Active Directoryってすごいんですよ。
「ここまでできるのか!」と驚くばかりです。

特にグループポリシーを使いこなせれば、
ユーザの行動をかなりのレベルまで抑制することもできます。

今までの案件でActive Directoryを構築したことはあったのですが、
開発のウエイトが重かったので、ここまで詳細に把握していませんでした。

現在MCADを目指していますが、Active Directoryの資格取得も考えようかと思う今日この頃です。

Tuesday, August 03, 2004 12:24:54 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   Active Directory  | 
 Monday, August 02, 2004

Tablet PCにSP2 RC2を適用したシステムプロパティ
2004年リリースにもかかわらず、「Tablet PC Edition 2005」!けど「Version 2002」?



ポップアップブロックのメッセージ
ここじゃ気がつかないんじゃないかなぁ
点滅くらいしてくれないと...



ポップアップブロックの設定メニュー
ツールメニューの構成と同じ



ActiveXのインストール警告
以前よりはわかりやすい?



プロキシ認証画面
保存するのチェックボックスがない

Monday, August 02, 2004 2:29:14 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   Security | Windows  | 

Office 2003のSP1がリリースされました。
#書くのが遅くてスイマセン。

Tablet PC好きな私としてはOneNoteの機能追加が気になるところです。
SP1のインストールはしたんですが、まだ詳細の確認はしてません。

以下、http://www.microsoft.com/japan/office/onenote/prodinfo/sp1/whatsnew.mspxからのコピーです。

---

OneNote に取り込むことができる情報が増えます
•  Microsoft Windows Mobile ベースの Pocket PC からメモをコピー。リクエストの多かった Pocket PC との連携が可能になります。 Pocket PC を使ってメモをとり、そのメモを OneNote へコピーすることができます。
•  ビデオ メモの撮影。音声+メモに加えて、動画+メモが可能になります。Web カメラやカムコーダを利用して、重要な会議やイベントの詳細を保存することができます。音声メモと同じように、このビデオ メモは入力メモまたは手書きメモと同期させることができます。
•  スクリーン クリップのキャプチャ。画面のイメージを簡単にキャプチャし、OneNote へ直接インポートできます。コンテンツは、時間、日付、URL と共にキャプチャされるため、メモを効率的に管理できます。
•  OneNote への画像のインポート。デジタル カメラや Web カメラで撮影した写真を追加し、メモやアイディアを視覚的に表示することができます。

他の Office プログラムとの統合を強化
•  他の Office プログラムから OneNote へのドキュメント挿入。Microsoft Office Word、Microsoft Office Excel、および Microsoft Office PowerPoint のファイルを画像としてノートブックに挿入し、入力メモや手書きメモで注釈を付けることができます。
•  会議の詳細を Outlook からインポート。Microsoft Office Outlook 2003 との統合を強化しました。議事録を OneNote 2003 でとっている方にはうれしい機能の追加です。たとえば、議事録を取る際に、その会議に関する依頼が、Outlook 2003 の会議依頼通知によって Outlook 2003 に登録されている場合、その日一日の予定を OneNote 2003 から呼び出し、任意の会議依頼中の詳細をすべて OneNote のページ側に挿入することができます。
•  Outlook の連絡先と予定の作成。OneNote 2003 側から Outlook 2003 へ作成して格納することができるアイテムとして、「仕事」の他に、このたび「連絡先」と「予定」が新たに追加されました。
•  Microsoft Word への変換。OneNote 2003 で作成しているメモを Microsoft Word へエクスポートすることができるようになりました。ネタ集めをする OneNote 2003 から 清書をする Word への橋渡しが簡単に行えるようになったことにより、正式なドキュメントを簡単に作成することができます。

共有とセキュリティの強化
•  OneNote セッションのリアルタイム共有。別の場所にいる複数のユーザーと共に、OneNote 2003 上の同じページを同時に閲覧し、書き込んで編集することができます。
•  ノートブック セッションのパスワード保護と暗号化。これもユーザーからのリクエストが多かったものです。パスワード保護と暗号化によって、ノートブックの特定のセッションを、ノートブックのユーザーとアクセス許可された人だけが閲覧できるようにします。

整理機能の強化
• 追加されたノート フラグの利用。カスタマイズ性が強化されたノート フラグを使用して、重要な活動や To Do リストの項目を追跡できます。
• 新しいひな形オプションの選択。新しいひな形オプションを使用して、メモを自由にカスタマイズできます。
•  日付と時間の挿入。ページのメモにタイムスタンプが付くので、メモを作成した時間がわかり、その情報が現在有効かどうか確認することができます。
•  ページ ヘッダの日付と時間の変更。後でメモの並び替えや参照を簡単に行えるよう、ページ ヘッダの日付と時間を編集できます。
•  サブページへの名前の割り当て。これもユーザーからの声が強かったものです。グループに含まれるサブページにタイトルをつけることができるようになりました。
•  検索の範囲指定。検索を開始する前に、ノートブック全体から 1 つのセッションへと検索の範囲を変更し、ある程度検索範囲を絞ってから検索をかけることが可能になりました。これにより必要な情報をすばやく見つけることができます。
•  ページ タブのサイズ変更。サイズ変更可能なページ タブによって、ページ タイトルすべてを簡単に閲覧できます。

タブレット PC でのデジタル インクの簡単な利用
•  メモの削除または消去の簡略化。簡単なペンのジェスチャで特定のテキストを削除したり、強化された消去機能を使用してより自然に編集することができます。
• 新しいペン スタイル オプションの利用カスタマイズ可能なペンと新しい色を使って、希望どおりのスタイルで書き込みができます。

プログラムを使用した、コンテンツのインポート
•  OneNote へデータをインポートするためのシンプルなアプリケーション プログラミング インターフェイス (API)を公開。インク、イメージ、または HTML などのデータを、使用しているアプリケーションからユーザーのノートブックへインポートできるよう API の公開を行います。これによって他の製品やデバイスとの統合が実現できるようになります。

Monday, August 02, 2004 2:14:49 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   Office  | 

TechEd 2004 YOKOHAMAに今年も参加することにしました。
とりあえず、参加する手はずは整えました。

あとは仕事しだいですね...
ここのところ滅茶苦茶なスケジュールで仕事してるので(大体終電帰りです)、
TechEdの期間を確保できるかどうかです。

Monday, August 02, 2004 1:32:43 AM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 
 Sunday, August 01, 2004
MS04-025 : (緊急)Internet Explorer 用の累積的なセキュリティ更新プログラム(867801)
 http://go.microsoft.com/?linkid=771783

 概要
  リモートでコードが実行される可能性のある Internet Explorer の脆弱性を修正するセキュリティ更新プログラムが公開されました。
 影響
  リモートでコードが実行される
 影響を受けるソフトウェア 
  ・Windows
Sunday, August 01, 2004 4:57:52 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   Security  | 

今日MCAD(.NET)取得に向けて70-315を受験してきました。
そして無事合格しました!:-D

Amazonで購入したe-bookで勉強しただけだったのでかなり不安だったのですが
なんとか合格点に達したみたいです。

購入したe-book
http://www.amazon.co.jp/exec/obidos/ASIN/B00009PXWH/qid=1091345442/ref=sr_8_xs_ap_i1_xgl/249-6349363-8753144

今後は70-316/70-320でしょうか。
#70-029(SQL Server 2000)を受けようかと思ってるんですが、
#最近SQL Server使ってないので...

Sunday, August 01, 2004 4:37:59 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET | Development  | 
 Friday, July 30, 2004

DDL(Data Definition Language)
リレーショナルデータベースのテーブルを制御する言語。テーブル全体の作成・変更・削除などを行なう際に使用する。

DML(Data Manipulation Language)
リレーショナルデータベースのレコードを制御する言語。テーブル内のレコードの追加・検索・更新・削除などを行なう際に使用する。

Friday, July 30, 2004 2:05:31 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   SQL Server  | 

「最近の投稿変なのが多いね」って数人の友人に言われたので...

最近、.NETとかASP.NETに関してメモ書き見たいな書き込みがありますが、
実は現在MCADに向けて(いろんな場所で)勉強中なので、
その際にメモ代わりにBlogを利用してますです。

なので、気にしないでください。:-)

Friday, July 30, 2004 1:14:05 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET | Development  | 

最近ノートPCが異常に熱いんです。
以前から熱いなぁとは思ってたんですが、
最近長時間起動しっぱなしにすることが多いのが
それに拍車をかけてるみたいです。

ということで、「ELECOM SX-A4F 冷え冷えトルネード」を買うことにしました。
http://www.amazon.co.jp/exec/obidos/ASIN/B000095O95/qid%3D1091117297/249-6349363-8753144

冷え冷えですよ。冷え冷え。う~ん、楽しみ。:-D

Friday, July 30, 2004 1:09:18 AM (東京 (標準時), UTC+09:00)  #    Comments [1]    | 
 Thursday, July 29, 2004

using System;
using System.Diagnostics;

// csc /d:TRACE app.cs
public class app
{
  static void Main() {
    Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
    Trace.WriteLine("Output Debug Message.");
  }
}

Thursday, July 29, 2004 2:32:59 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

App.cs
using System;
using System.Diagnostics;

public class App
{
  private static BooleanSwitch bs =
    new BooleanSwitch("BSwitch", "Test BooleanSwitch");
 
  private static TraceSwitch ts =
    new TraceSwitch("TSwitch", "Test TraceSwitch");
 
  public static void Main() {
    if (bs.Enabled)
      Console.WriteLine("BooleanSwitch is Enabled.");
   
    if (ts.TraceWarning)
      Console.WriteLine("TraceSwitch is more than TraceWarning.");
  }
}

App.exe.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
 <!--
   TraceSwitch
   Off : 0 : トレース メッセージおよびデバッグ メッセージを出力しません
   Error : 1 : エラー処理メッセージを出力
   Warning : 2 : 警告およびエラー処理メッセージを出力します
   Info : 3 : 情報メッセージ、警告、およびエラー処理メッセージを出力
   Verbose : 4 : すべてのデバッグ メッセージおよびトレース メッセージを出力します
   -->
 <switches>
   <add name="BSwitch" value="0" />
   <add name="TSwitch" value="2" />
 </switches>
  </system.diagnostics>
</configuration>

Thursday, July 29, 2004 2:22:38 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

- 出力ファイル -
/out:<ファイル>         出力ファイル名です (既定 : メイン クラスかファースト ファイルを伴うファイルのベース名)。
/target:exe             コンソール アプリケーションをビルドします (既定)。 (短いフォーム: /t:exe)
/target:winexe          Windows 実行可能ファイルをビルドします。 (短いフォーム: /t:winexe)
/target:library         ライブラリをビルドします。 (短いフォーム: /t:library)
/target:module          別のアセンブリに追加できるモジュールをビルドします。 (短いフォーム: /t:module)
/define:<シンボル リスト> 条件付きのコンパイル シンボルを定義する (短いフォーム: /d)
/doc:<ファイル>         生成する XML ドキュメント ファイル

- 入力ファイル -
/recurse:<ワイルドカード> ワイルドカードの指定に従い、現在のディレクトリとサブディレクトリ内のすべてのファイルをインクルードします。
/reference:<ファイル リスト>    指定されたアセンブリ ファイルからメタベースを参照する (短いフォーム: /r)
/addmodule:<ファイル リスト>    指定されたモジュールをこのアセンブリにリンクする

- リソース -
/win32res:<ファイル>    Win32 リソース ファイルを指定します (.res)。
/win32icon:<ファイル>   出力にこのアイコンを使用します。
/resource:<リソース情報>指定したリソースを埋め込みます。 (短いフォーム: /res)
/linkresource:<リソース情報>    このアセンブリに指定されたリソースをリンクします。 (短いフォーム: /linkres)

- コード生成 -
/debug[+|-]             デバッグ情報を生成する
/debug:{full|pdbonly}   デバッグの種類を指定します (full が既定値で、実行中のプログラムにデバッガを付加することができます。)
/optimize[+|-]          最適化を有効にする (短いフォーム: /o)
/incremental[+|-]       インクリメンタル コンパイルを有効にする (短いフォーム: /incr)

- エラーと警告 -
/warnaserror[+|-]       警告をエラーとして扱う
/warn:<n>               警告レベル (0-4) を設定する (短いフォーム: /w)
/nowarn:<警告リスト>    指定の警告メッセージを無効にする

- 言語 -
/checked[+|-]           オーバーフロー チェックの生成
/unsafe[+|-]            unsafe コードの許可

- その他 -
@<ファイル>             応答ファイルを読み込み、オプションを追加します。
/help                   この使い方に関するメッセージを表示します。 (短いフォーム: /?)
/nologo                 コンパイル時の著作権メッセージを表示しません。
/noconfig               CSC.RSP ファイルを自動的に含めません。

- 詳細 -
/baseaddress:<アドレス> ビルドするライブラリのベース アドレスです。
/bugreport:<ファイル>   'バグ報告' ファイルを作成します。
/codepage:<n>           ソース ファイルを開くときに使用するコードページを指定します。
/utf8output             UTF-8 エンコードでコンパイラのメッセージを出力する
/main:<型>              エントリ ポイントを含む型を指定します (ほかのエントリ ポイントはすべて無視します)。 (短いフォーム: /m)
/fullpaths              コンパイラは絶対パスを生成します。
/filealign:<n>          出力ファイル セクションで使用する配置を指定します。
/nostdlib[+|-]          標準ライブラリ (mscorlib.dll) を参照しない
/lib:<ファイル リスト>  参照を検索する追加のディレクトリを指定します。

Thursday, July 29, 2004 1:44:25 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

MSDNより

<c>
説明内のテキストをコードとして指定できます。コードとして複数行を指定する場合は、<code> タグを使用します。

<code>
複数行をコードとして指定する場合に使用します。説明内のテキストをコードとして指定する場合は、<c> タグを使用します。

<example>
メソッドやその他のライブラリ メンバの使用例を指定します。通常は、<example> タグと共に <code> タグを使用します。

<exception>
スローできる例外を指定できます。このタグは、メソッド定義に適用されます。

<include>
ソース コード内の型およびメンバの説明として、別のファイル内のコメントを参照できます。これはソース コードのファイルにドキュメント コメントを直接記述しない方法です。<include> タグは、XML の XPath 構文を使用します。

<list>
表または定義リストの見出し行の定義に使用します。表を定義する場合は、見出しには用語のエントリだけを指定します。
リストの各項目は、<item> ブロックで指定します。定義リストを作成するときは、term と description の両方を指定します。ただし、表、箇条書きリスト、または番号付きリストに指定する必要があるのは、description のエントリだけです。
リストや表には、必要な数だけ <item> ブロックを指定できます。

<para>
<summary>、<remarks>、<returns> などのタグの内部で使用します。<para> タグで、テキストを段落に分けることができます。

<param>
メソッド宣言のコメント内で使用してメソッドのパラメータの 1 つを説明します。
<param> タグのテキストは、IntelliSense、オブジェクト ブラウザ、およびコード コメント Web レポートに表示されます。

<paramref>
単語をパラメータとして示すことができます。XML ファイルを処理するときに、このパラメータに対して独立した書式を設定できます。

<permission>
メンバへのアクセスをドキュメントにできます。System.Security.PermissionSet でメンバへのアクセスを指定できます。

<remarks>
型の情報を追加し、<summary> で指定された情報を補足します。この情報は、オブジェクト ブラウザとコード コメント Web レポートに表示されます。

<returns>
メソッド宣言のコメント内で使用して、戻り値を説明します。

<see>
テキスト内でリンクを指定できます。「参照」のセクションに示すテキストには、<seealso> タグを使用します。

<seealso>
「参照」のセクションに示すテキストを指定できます。テキスト内でリンクを指定するには、<see> タグを使用します。

<summary>
型または型のメンバの説明に使用します。型の説明に補足情報を追加するには、<remarks> タグを使用します。
<summary> タグのテキストは、IntelliSense の型に関する唯一の情報源です。このタグのテキストは、オブジェクト ブラウザとコード コメント Web レポートにも表示されます。

<value>
プロパティの説明を指定できます。Visual Studio .NET 開発環境のコード ウィザードで追加したプロパティには、<summary> タグが追加されます。そのプロパティが表す値を記述するには、<value> タグを手動で追加する必要があります。

Thursday, July 29, 2004 1:37:36 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 
 Monday, July 26, 2004

以前ノートPCが欲しいって書きましたが、結局メモリの増設で満足することにしました!

ノートPCの仕様では最大値が384MBなのですが、
マザーボードのチップを調べるとどうも4GBまでは対応している様子。
#128MB標準搭載で、拡張スロットが1つあるという構成

そこでパソコンパーツを扱っているお店に行って、
「PC2100 200pin DDR SDRAM SO DIMMっていう規格のノート用のメモリで一番大きいやつください」って
言ったら出てきたのが1GB。店員さんは私が所有するノートPCを聞き
「多分大丈夫ですけど、保証外になりますよ」とあまり売りたくない様子。
「大丈夫。大丈夫。」と内心ドキドキしながらも約6万円(内1割ポイント還元)で購入。

早速家に帰ってドキドキしながら装着。
電源ON! Windowsを起動し、マイコンピュータのプロパティを確認。
1.10GB RAM!やった~!

これで当分ノートPCの買い替えはないなぁ

CPU : Pentium 4-M 1.6GHz
Memory : 1128MB(VIDEO : 16MB)
HDD : 60GB
CDR/CDRW/DVDROM

Monday, July 26, 2004 8:35:41 PM (東京 (標準時), UTC+09:00)  #    Comments [0]    | 
GDNJの投稿より
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=13469
デュアルコアが普通な世の中になると
こういう事象に結構遭遇するようになるんでしょうか?

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
class App {
  [DllImport("Kernel32", SetLastError=true)]
  static extern bool SetProcessAffinityMask(IntPtr hProcess, ulong dwProcessAffinityMask);
  [DllImport("Kernel32", SetLastError=true)]
  static extern bool GetProcessAffinityMask(IntPtr hProcess, out ulong dwProcessAffinityMask, out ulong dwSystemAffinityMask);
  static void Main() {
    ulong proc, sys;
    bool b = GetProcessAffinityMask(Process.GetCurrentProcess().Handle, out proc, out sys);
    Console.WriteLine(proc);
    Console.ReadLine();
    b = SetProcessAffinityMask(Process.GetCurrentProcess().Handle, 0x2);
    if (!b)
       Console.WriteLine(Marshal.GetLastWin32Error());
    b = GetProcessAffinityMask(Process.GetCurrentProcess().Handle, out proc, out sys);
    Console.WriteLine(proc);
    Console.ReadLine();
  }
}
Monday, July 26, 2004 11:03:54 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 
 Friday, July 23, 2004

仕事柄PowerPointやWordのファイルをPDFに変換することが多いのですが、
全く面識のない方の資料を読んでいると、「これって私の...」と思うようなことがあったりします。
ということで、印刷制限や修正制限を設定したくなることが多々あります。

そんな機能を搭載した「いきなりPDF Professional」が8月2日に発売されます。
http://www.sourcenext.info/sp/press/040721_pdfpro.html

#ソースネクストの回し者ではありませんよ(笑)

Friday, July 23, 2004 9:49:22 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   Software  | 

.NET Frameworkのすべての型は、なぜ参照型ではないのか?
(=プリミティブデータ型(整数など)を考慮して値型があるのか?)
⇒これにより余分なオーバーヘッドの発生は抑制される

ボクシング : 値型のコピーをマネージドヒープ上に作成すること
 int val = 1;     // 値型のインスタンスを宣言する 
 object obj = val; // 値型を参照型に変換する(ボクシング)

アンボクシング : 参照型のコピーをスタック上に作成すること
 int val = 1;
 object obj = val;
 int val2 = obj;     // コンパイルされない
 int val3 = (int) obj; // 正常にコンパイルされる(明示的なキャスト)

単純なデータ型がガベージコレクタの管理下のヒープではなく、
スタック上に格納され処理効率が改善される為、
ボクシングやアンボクシングを行うと、パフォーマンスが低下することは避けられないが、
大多数のアプリケーションでは問題にならない。

Friday, July 23, 2004 2:07:44 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

デリゲート
極端な言い方をすると、C++のコールバックのメカニズム
コールバックメソッドが型の安全性を壊さないことを保証する*
複数のメソッドの同時呼び出しをサポート*

Sample Code
using System;
using System.Windows.Forms;
using System.IO;

class Set
{
  private object [] items;
  public Set(int numItems) {
    items = new object[numItems];
    for (int i=0; i<numItems; i++)
      items[i] = i;
  }
  public delegate void Feedback(object value, int item, int numItems);
  public void ProcessItems(Feedback feedback) {
    for (int item=0; item<items.Length; item++) {
      if (feedback != null) {
        feedback(items[item], item+1, items.Length);
      }
    }
  }
}

class App
{
  static void Main() {
    StaticCallbacks();
    InstanceCallbacks();
  }
  static void StaticCallbacks() {
    Set setOfItems = new Set(5);

    setOfItems.ProcessItems(null);
    Console.WriteLine();

    setOfItems.ProcessItems(new Set.Feedback(App.FeedbackToConsole));
    Console.WriteLine();

    setOfItems.ProcessItems(new Set.Feedback(App.FeedbackToMsgBox));
    Console.WriteLine();

    Set.Feedback fb = null;
    fb += new Set.Feedback(App.FeedbackToConsole);
    fb += new Set.Feedback(App.FeedbackToMsgBox);
    setOfItems.ProcessItems(fb);
    Console.WriteLine();
  }
  static void FeedbackToConsole(object value, int item, int numItems) {
    Console.WriteLine("{0} / {1} : {2}", item, numItems, value);
  }
  static void FeedbackToMsgBox(object value, int item, int numItems) {
    MessageBox.Show(string.Format("{0} / {1} : {2}", item, numItems, value));
  }
  static void InstanceCallbacks() {
    Set setOfItems = new Set(5);

    App appobj = new App();
    setOfItems.ProcessItems(new Set.Feedback(appobj.FeedbackToFile));
    Console.WriteLine();
  }
  void FeedbackToFile(object value, int item, int numItems) {
    StreamWriter sw = new StreamWriter("Status", true);
    sw.WriteLine("{0} / {1} : {2}", item, numItems, value);
    sw.Close();
  }
}

Friday, July 23, 2004 1:31:01 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

「プログラミングMicrosoft .NET ASP.NETによるサーバーサイド開発」P359より抜粋
P363のXmlNavBarコントロールとP370の動的ローディングってのは興味深いなぁ

LoginCtrol1.ascx
<%@ Control Inherits="LoginBase" %>
<table>
 <tr>
  <td>User Name:</td>
  <td><asp:TextBox id="MyUserName" runat="server" /></td>
 </tr>
 <tr>
  <td>Password:</td>
  <td><asp:TextBox id="MyPassword" textmode="password" runat="server" /></td>
 </tr>
 <tr>
  <td colspan="2"><asp:LinkButton text="Log In" OnClick="OnLoginButtonClicked" runat="server" /></td>
 </tr>
</table>

LoginBase.cs
using System;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
public class LoginEventArgs
{
  private bool LoginValid;
  public LoginEventArgs(bool isValid) {
    LoginValid = isValid;
  }
  public bool IsValid {
    get { return LoginValid; }
  }
}
public class LoginBase : UserControl
{
  protected TextBox MyUserName;
  protected TextBox MyPassword;
  public string UserName {
    get { return  MyUserName.Text; }
    set { MyUserName.Text = value; }
  }
  public string Password {
    get { return MyPassword.Text;  }
    set { MyPassword.Text = value; }
  }
  public delegate void LoginEventHandler(object sender, LoginEventArgs e);
  public event LoginEventHandler Login;
  public void OnLoginButtonClicked(object sender, EventArgs e) {
    if (Login != null) {
      bool IsValid = (UserName.ToLower() == "yama3" && Password == "hoge");
      Login(this, new LoginEventArgs(IsValid));
    }
  }
}

LoginPage1.aspx
<%@ Register TagPrefix="user" TagName="LoginControl" src="LoginControl1.ascx" %>
<html>
 <body>
  <h1>User Control Demo</h1>
  <form runat="server">
   <user:LoginControl id="MyLogin" OnLogin="OnLoginUser" runat="server" />
  </form>
  <h3><asp:Label id="Output" runat="server" /></h3>
 </body>
</html>
<script language="C#" runat="server">
void OnLoginUser(object sender, LoginEventArgs e) {
 if (e.IsValid) {
  Output.Text = "Hello, " + MyLogin.UserName;
 }
 else {
  Output.Text = "Invalid login";
  MyLogin.UserName = "";
  MyLogin.Password = "";
 }
}
</script>

Friday, July 23, 2004 12:58:40 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   ASP.NET  | 
 Thursday, July 22, 2004

.NET Frameworkのリソースへのアクセス手順
1.ILのnewobj命令を呼び出して、リソースを表現する型のためにメモリ領域を確保する。この命令はMicrosoft C#、Visual Basicやそのほかの言語でnew演算子を利用することで出力される。
2.メモリを初期化してリソースの初期状態を設定し、リソースを利用可能な状態にする。型のコンストラクタが初期状態の設定を行う。
3.型のメンバにアクセスしてリソースを利用する(必要ならばこの手順を繰り返す)。
4.リソースの状態を消去してクリーンアップする(Finalize、Dispose、Close)。
5.メモリを開放する(ガベージコレクタだけがこの手順を行う)。

Thursday, July 22, 2004 1:55:37 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   .NET  | 

Authentication(認証)
要求の受信者が呼び出しもとの特定を可能とするメカニズム
Windows認証/Passport認証/フォーム認証

Authorization(許可)
ユーザが誰であるかわかれば、許可のメカニズムを通して、そのユーザがアクセスできるリソースを決める。
ACL許可/URL許可

Thursday, July 22, 2004 1:29:54 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   ASP.NET  | 

DataBinder.Eval について

DataBinder.Evalは、データバインディング構文を飛躍的に簡素化し、
バインディング式とデータソースとの間の関係をより抽象化してくれる

DataBinderは、System.Web.UIに定義されいているクラス
Evalは静的メソッドであり、その内部でリフレクションを使ってデータバインディング式を評価する
第2のパラメータは、現在のレコードのフィールドを識別する
第3のパラメータはオプションだが、文字列の書式を指定し、目的のフィールドをどのように文字列を変換するのかを規定する

具体的にはこんな感じになる
DataBinder.Eval(Container.DataItem, "price", “{0:c}“)

Thursday, July 22, 2004 1:14:23 AM (東京 (標準時), UTC+09:00)  #    Comments [0]   ASP.NET  | 
 Wednesday, July 21, 2004

やってしまいました。

今日空き時間を見つけてActive Directoryを使ったセキュリティ設定の検証を行っていたのですが、
何を思ったかOUのルートのグループポリシーでスタートアップスクリプトに
Cドライブのファイルを全削除するやつを設定してしまいました。
もちろん再起動後に全端末のCドライブがクリアされ御臨終となってしまいました。
#クライアントだけでなくDCまでも...

いやぁVirtual PCでよかった。

Wednesday, July 21, 2004 8:34:25 PM (東京 (標準時), UTC+09:00)  #    Comments [0]   Active Directory  | 
Copyright © 2010 yama3. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: