Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

ASP.NET

ASP.NETのweb.config、app.configへの変更の反映タイミングが解らない。

反映には、IISの再起動が必要です。

Forms認証ログイン前にJSファイルなどを参照できない。

<!--
  JavaScript ファイルを認証対象外にする
-->
<location path="Framework/Js">
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>
</location>

予期せぬSessionタイムアウトが発生する。

ASP.NETから共有フォルダにアクセスできない。

共有フォルダへのアクセス権付与が必要です。

上記を実施できない場合は、ASP.NETの偽装か区間偽装を推奨します。

余談:

ASP.NETからEXE起動したプロセスにアクセス権が無い。

 bool ret;
 
 string cmdNotepad = Environment.GetEnvironmentVariable(
 "SystemRoot", EnvironmentVariableTarget.Process) + @"\system32\notepad.exe";
 
 // 通常起動
 Process.Start(cmdNotepad);
 
 // 偽装起動
 // ・ASP.NET偽装や、ImpersonateValidUserの偽装レベルはSecurityImpersonationなので、これに合わせる必要がある。
 // ・独自偽装の、偽装レベルは、SecurityImpersonation、SecurityDelegationどちらでも良いが、双方を合わせる必要がある。
 // ・実行アカウントには、「プロセス レベル トークンの置き換え」セキュリティ・ポリシー設定が必要になる。
 ret = IdentityImpersonation.CreateProcessAsImpersonationUser(cmdNotepad, "");

偽装方式

ASP.NETの偽装

区間偽装のサンプル

 try
 {
   // コードの特定部分を実行するときのみ、任意のユーザを偽装する。
 
    // 偽装して
    ii = new IdentityImpersonation();
   ret = ii.ImpersonateValidUser("x", "", "x");
 
   // 偽装アカウントでの処理
    // 存在チェック
    this.lblElse.Text 
     += string.Format("、偽装後(任意のユーザ「{0}」を偽装):", WindowsIdentity.GetCurrent().Name)
       + ResourceLoader.LoadAsString(@"c:\test.txt", Encoding.GetEncoding(CustomEncode.UTF_8));
 }
 catch (Exception ex)
 {
     Debug.WriteLine(ex.Message);
 }
 finally
 {
   // 偽装解除
    ret = ii.UndoImpersonation();
 }

ログ出力機能

ログ出力フォーマットをカスタマイズ可能か?

可能です。

ログ出力フォーマットはカスタマイズ可能レイヤであるベースクラス2で定義されています。

以下のケースで、上記処理を案件ごとにカスタマイズして下さい。

ログ出力機能に於いて、1系 ⇔ 2系と言ったローリングを実現可能か?

ログ出力機能は、log4netの機能を使用しておりますので、
log4netの類似機能(MaxSizeRollBackups?CountDirection?)で代替下さい。

ログ出力機能に於いて、ユーザ毎に異なるファイル出力が可能か?

ログ出力のコントロールが可能か?

フィルタでコントロール

log4netの仕様を確認すると、以下のようになっているようなので、
Loggerのlevelにフィルタ設定すれば、一番性能的に良いと思います。

- Loggers ---> Logger ---> (level) ---> Appenders ---> Appender ---> (level) -> Output
        └-> RootLogger ---> Appender ---> (level) ---> Output

プログラムからコントロール

プログラムからコントロールする場合は、
LogIFの「ログ レベル情報取得インターフェイス」を使用してください。

https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/C%23/Frameworks/Infrastructure/Public/Log/LogIF.cs#L116

リッチ クライアント

リッチ クライアントの定義ファイルの保存先に、ユーザ毎に異なるディレクトリを指定可能か?

通信制御機能

プロキシ経由やプロキシ認証をサポートしているか?

Windows認証を使用したSSOをサポートしているか?

TCP/IPなどの通信プロトコルはサポートしているか?

テスト

(Open棟梁の)

負荷テストのポイント

脆弱性対策のポイント

テスト自動化について

その他

.Net Framework ClientProfile? で動作&コンパイルできない。

Client Profileはサポートしていません。

.NET Framework Client Profile
http://msdn.microsoft.com/ja-jp/library/vstudio/cc656912.aspx
  .NET Framework 4.5 以降では、Client Profile が中止され、
  完全な再頒布可能パッケージのみが使用できます。

今まではdefect(欠陥)か?とも考えていましたが、 上記理由で、今後のClient Profileへの対応予定はありません。 (また、Client Profile前提の開発も、あまりお勧めしません)


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS