4

HPC の API を使用して Microsoft HPC サーバーにジョブを送信する場合、SubmitJob 関数を呼び出してジョブを送信します。

void SubmitJob (ISchedulerJob job, string username, string password);

ユーザー名が null の場合、システムは Windows のユーザー名を使用し、パスワードが null の場合、システムはキャッシュされたパスワードを検索します。

キャッシュされたパスワードがない (またはキャッシュされたパスワードが正しくない) 場合、システムはユーザーのパスワードを要求するコンソール画面を表示します (正しいパスワードが入力されるまで)。

この画面を避けたいのですが、代わりに、ユーザーがキャッシュされた正しいパスワードを持っているかどうかを確認したいと思います。そうでない場合は、デフォルトのコンソール画面ではなく、独自のダイアログを表示します。

問題は、これまでのところ、その方法を見つけることができず、ユーザーがサーバー上で権限を持っているかどうかを知らせるISchedulerメソッドが呼び出されたことです。ただし、キャッシュされたパスワードが存在するかどうかは気にせず、サーバー上の既存のユーザー名に対して返されます。GetUserPrivileges()No Access \ User \ AdminUser

ジョブを送信する前に、ユーザーがキャッシュされた正しいパスワードを持っているかどうかを確認し、そうでない場合はパスワードを要求することはできますか? または、デフォルトのパスワード要求コンソールを独自のカスタム ダイアログに置き換えますか?

4

1 に答える 1

4

MSDNから:

Windows HPC Server 2008 R2 では、キャッシュされた資格情報をジョブに使用できない場合に、SubmitJob メソッドが例外を生成するように指定できます。その場合に SubmitJob が例外を生成する必要があることを示すには、SetInterfaceMode メソッドを呼び出すときに、hwnd パラメーターとして isConsole パラメーターに値 false を指定し、値 -1 に IntPtr オブジェクトを指定します。たとえば、SetInterfaceMode(false, new IntPtr(-1)); です。

于 2013-11-26T02:03:39.410 に答える