IpcServerChannel属性问题

发布于 2024-11-30 09:27:55 字数 506 浏览 2 评论 0原文

我必须用 C# 编写一个服务程序和一个维护它的程序。我无法使用 .net 3 或 4,所以我坚持使用 .Net 2.0。我了解到 IPC 通道可以帮助我,但我在使用它们时遇到了问题。

我正在尝试使用 IDictionary 作为属性列表来创建我的 IpcServerChannel 。但我找不到可以发送的好属性。

这是我的列表

IDictionary properties = new Hashtable();

properties.Add("authorizedGroup", "Users");
properties.Add("portName", "ServerChannel");

channel = new IpcServerChannel(properties,null);

当尝试运行它时,我收到 IdentityNotMappedException 错误。你们有什么想法吗?

I've got to write a service program and a program to maintain it in C#. I can't use .net 3 or 4, so I'm stick with .Net 2.0. I've learn that IPC channels could help me but I've got problem using them.

I'm trying to create my IpcServerChannel using IDictionary as a properties list. But I can't get to find the good properties to send.

Here's my list

IDictionary properties = new Hashtable();

properties.Add("authorizedGroup", "Users");
properties.Add("portName", "ServerChannel");

channel = new IpcServerChannel(properties,null);

When trying to run this, I got an IdentityNotMappedException error. Do you guys have any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

予囚 2024-12-07 09:27:55

用户名取决于 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);

The user names are dependant on the Windows languange:

You can use the SID code of the Account and also the Sid constants. For example "WellKnownSidType.WorldSid" is the same as "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);
朮生 2024-12-07 09:27:55

好的,我有东西。

事实上,我找到的有关 IPC 的所有信息都是英文的,因此它使用的是“Users”组。我正在使用的计算机是法语,因此“Users”组被命名为“Utilisateurs”。我已更正它,现在可以使用了。

Okay, I've got something.

The fact is that all information I found about IPC was in English, so it was using the "Users" group. The computer I'm working on is in French, so the "Users" group is named "Utilisateurs". I corrected it, and it is now working.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文