如何获得内置Windows“网络服务”帐户的本地化版本?

时间:2011-10-12 11:19:49

标签: c# windows iis-6

要设置我的网络应用程序,我需要完全控制'NETWORK SERVICE'帐户的某个文件夹。它工作正常,但在非英语系统上我得到System.Security.Principal.IdentityNotMappedException。这是因为此内置帐户的名称已针对该系统进行了本地化(我使用的是带编码的值'NETWORK SERVICE')。 有没有办法以编程方式找出'NETWORK SERVICE'的本地化版本是什么?

2 个答案:

答案 0 :(得分:16)

只需使用此代码:

var account = new SecurityIdentifier(WellKnownSidType.NetworkServiceSid, null).Translate(typeof(NTAccount)).Value;

答案 1 :(得分:2)

我猜你可以p / invoke LookupAccountSid(),因为它会返回the localized account nameNetwork Service的SID为S-1-5-20

您可以找到方法签名和调用示例here