使用HPC的API向Microsoft HPC Server提交作业时,通过调用SubmitJob函数提交作业:
void SubmitJob (ISchedulerJob job, string username, string password);
如果用户名为null,则系统使用Windows的用户名,如果密码为null,系统将搜索缓存的密码。
如果没有缓存的密码(或缓存的密码不正确),系统会提示一个请求用户密码的控制台屏幕(直到输入正确的密码为止)。
我想避开这个屏幕,而是想检查用户是否有正确的缓存密码,否则显示我自己的对话框而不是默认的控制台屏幕。
问题是到目前为止我无法找到方法,IScheduler
有一个名为GetUserPrivileges()
的方法,它告诉您用户是否在服务器上拥有No Access \ User \ Admin
权限。但它会为服务器上的任何现有用户名返回User
,如果存在缓存密码,则不用担心。
如果用户拥有正确的缓存密码,是否可以在提交作业之前进行检查,如果没有,请求密码?或者用我自己的自定义对话框替换默认的请求密码控制台?
答案 0 :(得分:4)
来自MSDN:
对于Windows HPC Server 2008 R2,如果缓存凭据无法用于作业,则可以指示SubmitJob方法应生成异常。要指示SubmitJob在这种情况下应生成异常,请在调用SetInterfaceMode方法时为isConsole参数指定false值,为值-1指定IntPtr对象作为hwnd参数。例如,SetInterfaceMode(false,new IntPtr(-1));。