我必须编写一个服务程序和一个程序来维护它在C#中。我不能使用.net 3或4,所以我坚持使用.Net 2.0。我知道IPC
频道可以帮助我,但我在使用它时遇到了问题。
我正在尝试使用IpcServerChannel
作为属性列表创建我的IDictionary
。但我无法找到要发送的好房产。
这是我的清单
IDictionary properties = new Hashtable();
properties.Add("authorizedGroup", "Users");
properties.Add("portName", "ServerChannel");
channel = new IpcServerChannel(properties,null);
尝试运行时,出现IdentityNotMappedException
错误。你们有什么想法吗?
答案 0 :(得分:2)
用户名取决于Windows languange:
您可以使用帐户的SID代码以及Sid常量。例如,“WellKnownSidType.WorldSid”与“EveryOne”相同。
// Get SID code for the EveryOne user
SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
// Get the NT account related to the SID
NTAccount account = sid.Translate(typeof(NTAccount)) as NTAccount;
// Put the account locale name to the properties
properties.Add("authorizedGroup", account.Value);
答案 1 :(得分:0)
好的,我有东西。
事实是我发现的关于IPC的所有信息都是英文的,所以它使用的是“用户”组。我正在使用的计算机是法语,因此“用户”组名为“Utilisateurs”。我纠正了它,它现在正在运作。