Проблема свойств IpcServerChannel - PullRequest
1 голос
/ 19 августа 2011

Мне нужно написать служебную программу и программу для поддержки ее на 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.Ребята, у вас есть идеи?

Ответы [ 2 ]

2 голосов
/ 11 января 2012

Имена пользователей зависят от языка Windows:

Вы можете использовать код 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);
0 голосов
/ 22 августа 2011

Хорошо, у меня есть кое-что.

Дело в том, что вся информация, которую я нашел о IPC, была на английском языке, поэтому она использовала группу «Пользователи». Компьютер, на котором я работаю, по-французски, поэтому группа «Пользователи» называется «Utilisateurs». Я исправил это, и теперь оно работает.

...