MicroSoft .Netの最近のブログ記事

ASP.NETで、何らかのWebコントロールを使用すると、そのaspxには__VIEWSTATEをいう画面情報を表すパラメータ(input hidden タグ)が生成されます。

このaspxから、別のaspxへ直でPOSTをしたいことがあるのですが、そのままformのaction属性を目標の別aspxへ書き換えるだけでは、ViewStateエラーが発生してしまいます。

このエラーがMAC検証エラーの場合、machine.configのenableViewStateMacをfalseにすることで検証を無効化することもできるのですが、これはセキュリティホールのリスクがあります。

http://support.microsoft.com/kb/829743/ja



結論から言うと、machine.configにてMAC検証を有効化したままで、ViewStateを含むaspxから別aspxへ直接POSTするには、POST前に__VIEWSTATE要素を削除してしまえばいいです。

以下のようなJavascriptで簡単に実現できます。



function post(targetAspx)

{

  var viewState = window.document.getElementById('__VIEWSTATE');

  if(viewState != null) {

    viewState.parentNode.removeChild(viewState);

  }

  

  var f = window.document.forms[0];

  f.action = targetAspx;

  f.submit();

}

Visual SourceSafe 2005 (VSS) 日本語版がリリースされました。

MSDNサブスクライバダウンロードから2005/12/20に掲載されています。



<新機能>

・多言語対応

・Unicode対応:XMLファイルをテキストとして扱える

・同時チェックアウト対応:CVSのように同時にチェックアウトして、後でマージする方式も選択できる。



文字コードは、Shift-JIS、EUC、UTF-8で問題なく処理できるようです。



ただし、改行コードに関してはVSS 6.0と同様、デフォルトでCR/LFにされてしまいます。



<改行コードをLFで取得する方法>



― ユーザ属性による設定 ―



VSSにログインできるようにユーザ名を登録する。

その際、ユーザ名を2つ作成し、改行コードをLFとCR/LFの2通りに対応できるようにする。



1. アカウントを作成する。(Foo)

2. アカウントを作成する。(Foo_lf)

3. %VSSデータベースディレクトリ%¥users¥Foo_lf¥ss.iniを開く

4. 最後に>の部分を追加する

 ; Your current SourceSafe project.

 Project = $/LU Std/lumain

>EOL = n



これにより、Foo_lfでログインするとチェックアウトしたファイルの行末がLFのみ(UNIX形式)となる。



― コマンドラインによる方法 ―



ss Get -gr



 フォーマット)

 ss Get -g(EOL) EOLは次のものを指定可 r, n, rn