2011年10月25日火曜日

ASP.NET セキュリティ例外エラー

--------開発環境--------
開発言語:Visual Studio 2008/2005 VB
Microsoft .Net Framework 2.0
OS: Windows Server 2003 R2
DB:SQL Server 2005
Team Foundation Server 2008をインストール済み
このような環境下で自作のWebアプリをアップすると以下の様なエラーが発生してしました。
----------------------------------
セキュリティ例外
説明: このアプリケーションはセキュリティ ポリシーで許可されていない操作を実行しようとしました。このアプリケーションで必要なアクセス許可を取得するには、システム管理者に相談するか、構成ファイルでアプリケーションの信頼レベルを変更してください。
例外の詳細: System.Security.SecurityException: 型 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' のアクセス許可の要求に失敗しました。
----------------------------------
Team Foundation Server 2008が入っていないサーバーだと問題ない・・・。
いろいろと調べていたら、SharePointServiceをインストールされている環境だと発生するらしいことが判明。

対処方法
アプリケーションのweb.config
<system.web>内に
<trust level="Full" originUrl=""/>

IISのリダイレクト

開発環境と本番環境が別サーバーになっていて、アンカータグを絶対パスで書いてしまった場合、そのまま本番環境へ持って行くと、リンクをクリックした際、開発サーバーへ飛ばされてしまう。

アンカータグを相対パスで書き直せば良いが、数が多いと大変。
苦肉の策として、IISのリダイレクト機能で対処する事が出来る。

IISの設定方法
IISで新規にWebサイトや仮想ディレクトリを作る。

その作成したWebサイトや仮想ディレクトリのプロパティを開き、「ホームディレクトリ」を以下の様に設定する。

IIS

重要なのはリダイレクト先のパラメータ

$S
URLをリダイレクト先に反映。

$P
パラメータをリダイレクト先に反映。

パラメータがなければ?$PはなくてもOK。

$Sと$Pの間には?が必要なので注意。

詳しくはMSのサイト参照の事。
http://support.microsoft.com/kb/324000/ja

2011年10月20日木曜日

EclipseでのJDBCドライバを使用したSQLserver2005接続方法

【1】「Microsoft SQL Server 2005 JDBC Driver 1.2」のダウンロード
 1. Microsoft Download Centerからダウンロードします。ダウンロードサイトはこちら
 2. ファイルの解凍先を「C:\Program Files\Microsoft SQL Server 2005 JDBC Driver」に変更して[Unzip]をクリック。

【2】eclipseにて、プロジェクトにjarファイルを追加
 1. [パッケージ・エクスプローラー]でプロジェクトを右クリックし、[プロパティー]から[プロパティー]ダイアログ表示。
WS000005

 2. [Javaのビルド・パス]を選択して、[ライブラリー]タブから[外部JARの追加]ボタンをクリックし、[JARの選択]ダイアログ表示。
WS000010

 3. 「C:\Program Files\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_1.2\jpn\sqljdbc.jar」を選択して[開く]ボタンをクリック。
WS000011

 4. [ビルド・パス上のJARおよびクラス・フォルダー]の一覧に「sqljdbc.jar」が追加されたことを確認して[OK]。
WS000012

 5..[WEB-INF]-[lib]にライブラリをコピーして下さい。
SQL_JDBC

【3】 データベースの接続確認
* メインメソッドに以下を記述し実行して、コンソールに「接続成功!!」が表示されたら成功。

   //データベース名、ユーザー名、パスワード
   String strServerName = "SQLServer";
   String strDBName = "TestDB";
   String strUser = "sa";
   String strPassword = "";

   //コンソールに「接続開始」を表示
   System.out.println("接続開始");
   try
   {
   //JDBCドライバを指定
   Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
   //接続開始
   Connection objCon = DriverManager.getConnection(
                    "jdbc:sqlserver://" + strServerName + ":1433;" +
                    "databaseName=" + strDBName + ";" +
                    "user=" + strUser + ";" +
                    "password=" + strPassword);

   //コンソールに「接続成功」を表示
   System.out.println("接続成功!!");
   }
  catch(Exception objEx)
  {
    //コンソールに「接続エラー内容」を表示
    System.err.println(objEx.getClass().getName() + ":" + objEx.getMessage());
  }

2011年10月19日水曜日

証明書サービス、インストール時の注意点

はまったのでメモ。

ADのグローバルカタログを設定していないと、「エンタープライズルートのCA」がグレーアウトして選択出来ない。

Search Server 2008 ExpressによるNotesDBの検索

社内にNoetsDBとファイルサーバーを横断的に検索出来るサイトが欲しい!!
出来ることなら無償のソフトがないかなと思っていたところ、「Search Server 2008 Express」にたどり着きました。
http://www.microsoft.com/japan/enterprisesearch/default.aspx

NotesDBの検索方法については、こちらで紹介されています。
http://technet.microsoft.com/ja-jp/office/sharepointserver/cc952469.aspx#NotesDomino_with_Search

Office SharePoint Server 2007のドキュメントですが、Search Server 2008はこれのサブセットなので、問題なく動作します。
ただ、注意しなければならないのは、検索キャッシュです。
例えば、「機密情報Field、Managerロールには見せるがだが、ロールなしには見せない。」と言ったケース。
機密情報Fieldもしっかりキャッシュされるので、権限がない人間はFormで機密情報見られなくても、キャッシュで見れてします。

その辺を上手く運用でカバー出来れば非常に面白いソフトではないでしょうか。

プロセッサ: 2.5 ギガヘルツ (GHz) (最小)
メモリ: 2 ギガバイト (GB) RAM (最小)
とシステム要件が少々高いのが難点です。(今時だとこのくらい大したことないのかな?)

2011年10月18日火曜日

JAVAからAccessへの接続 (2)

JAVAでAccessに接続するにはJDBC-ODBCブリッジを使用します。

JAVAはunicode、ODBCはMS932(S-JIS)の文字コードがデフォルトですので、
一工夫しないと日本語文字が表示されなかったり、文字化けしたりします。

接続構文と日本語対応構文を組み合わせて載せておきます。

//JDBCドライバのロード
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//日本語対応処理
java.util.Properties prop = new java.util.Properties();
prop.put("charSet", "SJIS");

//データベースに接続
Connection con = DriverManager.getConnection("jdbc:odbc:Test",prop);
Statement smt = con.createStatement();
ResultSet rst = smt.executeQuery("SELECT * FROM test");

//データベースを切断
rst.close();
smt.close();
con.close();

JAVAからAccessへの接続 (1)

Windows環境では、JAVAからAccessへ接続する際、まず「ODBCデータソースアドミニストレータ」へ登録する必要があります。(それ以外の環境では不明です)

【1】スタートメニューからコントロールパネルを開き、「管理ツール」を開きます。WS000000

【2】データソース(ODBC)を開きます。
WS000001

【3】「追加」をクリックします
WS000002

【4】「Microsoft Access Driver (*.mdb)」を選択し、「完了」をクリックします。
WS000003

【5】データソース名に「Test」と入力します。
*このデータソース名をJavaプログラムの中で使います
WS000004

【6】データベースの「選択」をクリックします。
WS000006

【7】プログラムで使用したいmdbファイルを選択したら、「OK」をクリックします。
WS000007

【8】データベースに使用したいmdbファイルが選択されていることを確認したら、「OK」をクリックします。
WS000008

【9】ユーザーデータソースに「Test」が追加されたのを確認したら、「OK」をクリックします。
WS000009

【10】管理ツールを閉じて終了です。