4

使用 HPC 的 API 向 Microsoft HPC 服务器提交作业时,通过调用 SubmitJob 函数提交作业:

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

如果用户名为空,则系统使用Windows的用户名,如果密码为空,则系统搜索缓存的密码。

如果没有缓存密码(或缓存密码不正确),系统会提示一个控制台屏幕,要求用户输入密码(直到输入正确的密码)。

我想避免这个屏幕,相反我想检查用户是否有正确的缓存密码,否则会显示我自己的对话框而不是默认的控制台屏幕。

问题是到目前为止我无法找到这样做的方法,IScheduler有一种方法GetUserPrivileges()可以告诉您用户是否No Access \ User \ Admin在服务器上具有特权。但它会返回User服务器上任何现有的用户名,不管是否存在缓存的密码。

是否可以在提交作业之前检查用户是否有正确的缓存密码,如果没有,请请求密码?或者也许用我自己的自定义对话框替换默认的请求密码控制台?

4

1 回答 1

4

来自MSDN

对于 Windows HPC Server 2008 R2,如果缓存的凭据不能用于作业,您可以指示 SubmitJob 方法应生成异常。要指示 SubmitJob 在这种情况下应生成异常,请在调用 SetInterfaceMode 方法时为 isConsole 参数指定值 false 并为值 -1 指定 IntPtr 对象作为 hwnd 参数。例如,SetInterfaceMode(false, new IntPtr(-1));。

于 2013-11-26T02:03:39.410 回答