要设置我的网络应用程序,我需要完全控制'NETWORK SERVICE'
帐户的某个文件夹。它工作正常,但在非英语系统上我得到System.Security.Principal.IdentityNotMappedException
。这是因为此内置帐户的名称已针对该系统进行了本地化(我使用的是带编码的值'NETWORK SERVICE'
)。
有没有办法以编程方式找出'NETWORK SERVICE'
的本地化版本是什么?
答案 0 :(得分:16)
只需使用此代码:
var account = new SecurityIdentifier(WellKnownSidType.NetworkServiceSid, null).Translate(typeof(NTAccount)).Value;
答案 1 :(得分:2)
我猜你可以p / invoke LookupAccountSid(),因为它会返回the localized account name。 Network Service
的SID为S-1-5-20
。
您可以找到方法签名和调用示例here。