Microsoft HPC:检查用户是否已记录

时间:2013-11-13 08:21:48

标签: c# hpc

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

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

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

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

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

问题是到目前为止我无法找到方法,IScheduler有一个名为GetUserPrivileges()的方法,它告诉您用户是否在服务器上拥有No Access \ User \ Admin权限。但它会为服务器上的任何现有用户名返回User,如果存在缓存密码,则不用担心。

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

1 个答案:

答案 0 :(得分:4)

来自MSDN

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