サービス&サポート


RSView32 Active Displayクライアント上で外部アプリケーションがユーザのセキュリティ情報にアクセスする方法

このテクニカルノートの情報は、以下に該当します:

製品:RSView32 Active Displayタイプ:アプリケーションノート
テクニカルノートID:A1573JA
パッケージ/モジュール:Server英文版作成日:2000/12/01
リビジョン:6.20.63
6.30.16
修正リビジョン:
サブシステム: Active Display Station
ActiveX
Security
Utilities

テクニカルノート本文:

背景:
RSView32 Active Display System Ver. 6.2では、Active DisplayグラフィックコンテナのAmbientプロパティにより、Active Displayクライアントにログインしているユーザのユーザ名およびセキュリティコードにアクセスできます。しかし、外部アプリケーションからこの情報にアクセスするには、グラフィックディスプレイにRSView32 UserName Label ActiveXコントロールを追加しなければなりません。

RSView32 UserName Label ActiveXコントロールは、Client Security Serverと共に使用します。Client Security Serverは、外部アプリケーションにセキュリティ情報を提供するCOMオートメーションサーバです。

RSView32 UserName Labelコントロールは、RSView32 Securityコントロールの一部です。このコントロールの概要およびインストール方法については、以下のサポート・ライブラリ・ドキュメントを参照してください。

A1415JA - RSView32 Active Display SystemのActiveXコントロール:ボタンへのRSView32セキュリティの追加、現在のユーザの表示

RSView32 UserName Label
Client Security Serverをアクティブにするには、RSView32 UserName Label ActiveXを以下のようにセットアップします。

Client Security Server
RSView32 UserName Labelコントロールの"EnableSecurityProvider"プロパティが有効であり、このコントロールがディスプレイに表示されている場合、Client Security Serverはコントロールによって自動的に開始されます。また、外部アプリケーションがサーバ'のClientSecurityオブジェクトを作成すると、サーバが開始されます。これにより、Active Displayクライアントがアクティブでないときに、外部アプリケーションを開始して実行できます。

注記: Client Security Serverアプリケーションは、RSView32 Security Controlsと共にインストールおよび登録されるため、(自動的にダウンロードされた場合は)サーバとActive Displayクライアントの両方に存在します。Client Security Serverは、RSView32 Active Displayクライアント上で実行された場合にのみ、RSView32 UserName Labelコントロールによってアクティブになります。

Active Displayサーバ上のユーザのセキュリティ情報は、RSView32オブジェクトモデルを介して利用できるため、Active Displayサーバおよびクライアントの両方で実行するために作成された外部アプリケーションは、適切なセキュリティ情報ソース上で実行され、適切なセキュリティ情報ソースに接続されているかどうかを判断する必要があります。

オブジェクトインターフェイス
Client Security Serverには、SecurityProviderおよびClientSecurityという2つのオブジェクトが含まれます。SecurityProviderオブジェクトは、RSView32 UserName Labelコントロール用です。ClientSecurityオブジェクトは、外部アプリケーションがオブジェクト参照を作成するためのものです。

以下の例および参照は、Visual BasicアプリケーションからClient Security Serverにアクセスするためのものです。Client Security Serverを使用するには、Visual Basicアプリケーションは、プロジェクトのReferencesダイアログボックスでRSView32 Client Security Serverに参照する必要があります。

ClientSecurityオブジェクトに接続するためのコード例を以下に示します。

	' Define in (Declarations) Section
	Dim oClientSecurity as CLSecSvr.ClientSecurity

	Sub ConnectToClient()
		Set oClientSecurity = New ClSecSvr.ClientSecurity
		' Process information here
		...
		...
		Set oClientSecurity = Nothing
	End Sub


以下のオブジェクトダイアグラムは、サーバのプロパティ、メソッド、およびイベントを示します。



ClientSecurityオブジェクトのプロパティ

プロパティ

読取り/書込み

説明

ComputerName As String

R

ローカルコンピュータ名を返します。
(これは、Windowsのコンピュータ名です)

ServerComputerName As String

R

Display Stationがディスプレイサーバとしてレポートするコンピュータ名を返します。これは、Windowsのコンピュータ名、DNS名およびIPアドレスです。これにより、VBアプリケーションは、接続されているセキュリティ・プロバイダ・ソース・サーバを識別できます。

ViewOnlyMode As Boolean

R

Active Display Stationが読取り専用モードに構成されているかどうかを示す値を返します。

ProviderConnected As Boolean

R

RSView32 UserName Labelが接続され、セキュリティ情報を提供しているかどうかを示す値を返します。Active Displayクライアントはクローズする際に、RSView32 UserName Labelをクローズして、このプロパティはFalseになります。

UserName as String

R

マシンにログインしているユーザの名前を返します。

UserCodes as String

R

現在のユーザのセキュリティコードを返します。(例:"AB", "MNOP"など。ユーザにコードがない場合は空になります。)

ClientSecurityオブジェクトのメソッド

メソッド

説明

SecurityExecute(
SecurityCodes as String, SuccessCommandString as String,
[FailCommandString as String]
)

セキュリティチェックを実行して、SecurityCodesの文字列に、*または現在のユーザのRSView32セキュリティ・レベル・コード(A~P)が含まれる場合は、SuccessCommandStringのコマンド文字列を実行します。
ユーザが適切なセキュリティコードを持たない場合、オプションのFailedCommandStringパラメータが送信されます。
コマンド文字列の変換:
以下の文字列(大文字と小文字は区別しません)がコマンド文字列で発生すると、現在の値に変換されます。
{ComputerName} 現在のコンピュータ名。ComputerNameプロパティと同じです。
{RSViewUserName} 現在のユーザ名。UserNameプロパティと同じです。
注記: このメソッドは、ProviderConnectedプロパティがTRUEの場合にのみ有効です。

ClientSecurityオブジェクトのイベント

イベント

説明

ProviderChanged (
ProviderConnected as Boolean)

プロバイダ接続が変更したときに発生するイベント。ProviderConnectedパラメータは、RSView32 UserName Labelの現在の状態を示します。Trueは、接続されていることを意味します。Falseは、接続が切断されていることを意味します。

UserChanged (
UserName as String,
UserCodes as String)

UserNameが変更したときに発生するイベント。このイベントは、新しいユーザがログインしたときに発生します。UserNameは新しいユーザの名前であり、Usercodesは新しいユーザのセキュリティコード文字列です。

制限事項
アプリケーション例
以下のVisual Basic 6アプリケーションには、Client Security Serverのプロパティおよびメソッドを接続および使用する方法を示すコードが含まれます。



DDEインターフェイス
Client Security Serverには、DDEインターフェイスも組込まれているため、コマンドをAcitve Displayクライアントに送信できます。また、このインターフェイスは、コマンド文字列で指定されている場合に、"{Computername}"および"{RSViewUserName}"の文字列の変換を提供します。このインターフェイスは、DDEExecuteというRSView32コマンドにより、"{Computername}"文字列を含むコマンドを変換するための、RadStationExecアプリケーションに代わる方法を提供します。

このインターフェイスがRADStationExecアプリケーションよりも優れている点は、Client Security Serverがメモリ内に既にロードされていて、Active Displayクライアントのコマンドインターフェイスへの接続を保持していることです。

DDEインターフェイスは、以下のとおりです。

Application name: CLSecSvr
Topic name: ClientCMD

DDEExecuteコマンドの構文は、以下のとおりです。

コマンド

パラメータ

説明

SecurityExecute

SecurityCodes
| SuccessCommandString
[ | FailCommandString ]

セキュリティチェックを実行して、SecurityCodes文字列に*または現在のユーザのRSView32セキュリティ・レベル・コード(A~P)が含まれる場合は、SuccessCommandStringのコマンド文字列を実行します。
セキュリティコードが見つからない場合は、オプションのFailedCommandStringパラメータが送信されます。
注記:FailedCommandStringが使用される場合は、パラメータ間を縦棒(|)文字で区切ります。SuccessCommandStringとFailedCommandStringが縦棒文字で区切られていることを確認してください。
コマンド文字列の変換:
以下の文字列(大文字と小文字は区別しません)がコマンドで発生した場合、現在の値に変換されます。
{ComputerName} 現在のコンピュータ名
{RSViewUserName} 現在のユーザ名

Execute

CommandString

CommandStringのコマンド文字列を実行します。
    コマンド文字列の変換:
    以下の文字列(大文字と小文字は区別しません)がコマンドで発生した場合、現在の値に変換されます。
    {ComputerName} 現在のコンピュータ名
    {RSViewUserName} 現在のユーザ名


    以下の例は、Computernameパラメータをディスプレイに渡すためのコマンドを実行する方法を示します。

    DDEExecute CLSecSvr|ClientCMD Execute Display ProcessA1 /T{Computername}

    以下の例は、コマンドがユーザのセキュリティを使用して、現在のユーザが正しいセキュリティレベルを持っている場合にメニューを表示するか、またはユーザがセキュリティを持っていない場合に警告ダイアログを表示するかを決定する方法を示します。

    DDEExecute CLSecSvr|ClientCMD SecurityExecute ABC | Display ProcessMenu | Display InvalidSecurity

    以下の例は、Remarkを使用して、イベントの発生をクライアントに表示する方法を示します。

    DDEExecute CLSecSvr|ClientCMD Execute Remark User {RSViewUsername} Opened valve A1 from {Computername}

    DDEインターフェイスの使用に関するヒント

    法的な注意事項:
    本版は、英文テクニカルノートの和訳です。英文原文を正文といたします。
    ロックウェル・ソフトウェア(RSI) のKnowledgebaseに記載された情報は、いかなる保証もなく「そのままで」提供されます。RSI は、明示または暗示されたいかなる保証も負いません。また、RSI がそのような損害の可能性を忠告していた場合でも、直接、間接、偶発的、必然的な利益の損失または損害を含むいかなる損害についても、RSI は責任を負いません。
    ©2000 Rockwell Software Inc. All rights reserved.