サンプルの設定
以下の例では、Web アプリケーション定義のさまざまなプロパティを試します。まず最初に、サンプルの Zen アプリケーションを USER ネームスペースにインストールします。サンプル・コードの場所については、以下のメモを参照してください。インストール手順については、"ターミナルを使用したコードのインポート" を参照してください。
Zen アプリケーションは 3 つのファイルから構成されています。
-
SecurityTutorial.Application — Zen アプリケーション定義。
-
SecurityTutorial.HomePage — アプリケーションのメイン・ページ。このページには、$UserName (ユーザ名) および $Roles (ユーザが属するロール) 変数の値が表示されます。
-
SecurityTutorial.LogIn — アプリケーションのカスタム・ログイン・ページ。
以下は、SecurityTutorial.HomePage で使用される重要なコード、XDATA Contents ブロックと DrawMessage メソッドです。
/// This XML block defines the contents of this page.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="" >
<html align="center">
<h2>Home Page</h2>
</html>
<html align="center" OnDrawContent="DrawMessage">
</html>
</page>
}
Method DrawMessage(pSeed As %String) As %Status
{
&html<<h1>USER: #($UserName)# </h1>>
&html<<h1>ROLES: #($ROLES)# </h1>>
Quit $$$OK
}
このコードは DrawMessage メソッドを使用して、$UserName および $Roles の値を表示します。
SecurityTutorial.LogIn のコードは以下のとおりです。
/// This XML block defines the contents of this page.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
<html align="center"><h2>Login Page</h2></html>
<loginForm align="center" cellStyle="padding:5px;" id="form">
<text label="User:" name="CacheUserName" />
<password label="Pwd:" name="CachePassword" /> <submit caption="Login"/>
</loginForm>
</page>
}
このコードは、ユーザがユーザ名とパスワードを入力できるようにするログイン・ページを作成します。このコードについて、以下のことに注意してください。
-
Zen の <loginForm> 要素を使用してログイン・フォームを作成します。
-
ユーザ名とパスワードに使用されるコントロールはそれぞれ、name 属性を持ちます。値は、順番に CacheUserName と CachePassword です。
サンプルの Zen アプリケーションは Zen_Application.xml に含まれます。このファイルは install-dir\dev\tutorials\security にあります。既定の Windows の環境では、install-dir は C:\InterSystems\Cache です。
チュートリアルのこのセクションで使用している例では、Caché が最小のセキュリティでインストールされていることを前提としています。
%request オブジェクトの詳細は、"Caché Server Pages (CSP) の使用法" の "CSP での HTTP 要求" セクションにある "%CSP.Request オブジェクト" を参照してください。