在C#

时间:2018-10-23 08:40:12

标签: c# windows sid

我正在尝试使用以下代码将Windows用户名(以传统的.\username格式)转换为SID对象:

NTAccount account = new NTAccount(".\\MyUser");
SecurityIdentifier sid = (SecurityIdentifier)account.Translate(typeof(SecurityIdentifier));

但是,执行最后一条指令时,我不断收到以下异常:

  

System.Security.Principal.IdentityNotMappedException:'部分或全部   身份参考无法翻译。'

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

经过反复试验后回答我自己的问题:

该代码是正确的,但是Translate函数似乎不支持缩写var new_string = stringURL.join(''); console.log(new_string); 来表示该帐户是本地帐户而不是域中的帐户。因此,如果您的用户名以.开头,则需要用计算机名替换点。以下代码可以正常工作:

.\