如何在C#中实现OPC数据访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在C#中实现OPC数据访问相关的知识,希望对你有一定的参考价值。

1、安装KepServer
2、将PLC中的地址点位导入kep中
3、OPCDAAuto.dll 将这个dll引入你的项目中
4、使用dll中提供的对象和方法操作OPC Server
参考技术A OPC你是说 西门子 那个么???opcServer

在 C# 中实现 runas

【中文标题】在 C# 中实现 runas【英文标题】:Implementing runas in C# 【发布时间】:2012-10-01 06:16:23 【问题描述】:

我该如何实施 runas /noprofile /netonly /user:@ 使用 C#。

System.Diagnostics.ProcessStartInfo 具有用户、域、密码、动词(我们可以在其中使用 runas)等字段,但如何设置 netonly。使用 Cmd 它不需要令牌,但在使用诊断时请求令牌,因为出现安全错误““服务器上的安全数据库没有此工作站信任关系的计算机帐户””,因为我的系统不是该域中值得信赖的合作伙伴。在 Cmd 中没有遇到这样的问题。我想使用 UI 输入用户信息。由于我的系统不是值得信赖的合作伙伴,因此我无法使用模拟。

【问题讨论】:

几年前,我写过a small impersonation class,可能对您的要求有所帮助。 要使用模拟 PC 应该是域的受信任伙伴,而我的不是受信任的系统,所以我不能使用模拟。使用模拟时会引发相同的异常。 【参考方案1】:

您已尝试使用带有 ProcessStartInfo 的 runas 动词执行新进程。但这与在命令提示符下执行 runas 进程不同。

因此,复制您在命令提示符处所做的操作的简单方法是执行传递所有参数的 runas 程序,就像您在命令提示符处执行的操作一样。

Process.Start("runas.exe", "/noprofile /netonly ......");

我不明白您尝试的细微差别。但是,如果通过 cmd 运行完全符合您的需要,那么您可以这样做:

Process.Start("cmd.exe", "/c runas /noprofile /netonly ......");

【讨论】:

Process.Start("runas.exe", " /noprofile /netonly /user: " + Application.StartupPath + filename); Cmd 的弹出来和不带输入(密码)。 如果路径包含空格,您可能需要用引号括起来 您也可以尝试 ProcessStartInfo 重载并将 UseShellExecute 设置为 false。虽然我看不出这会有什么不同。 我也试过了,不会有区别。我已经将动词设置为'runas',将loadProfile设置为false,并指定用户名和密码,shellExecute为false,抛出与以前相同的异常(不受信任的合作伙伴)即进程正在使用用户令牌,而 cmd 未使用任何令牌。 "我已将动词设置为 'runas'" 你为什么这样做?无论如何,您是否将路径用引号括起来?可以为我们做一些诊断,让我们知道"/noprofile /netonly /user: " + Application.StartupPath + filename" 的评估结果。

以上是关于如何在C#中实现OPC数据访问的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firebase 中实现基于角色的访问控制

如何实现组态王与OPC数据交换

我应该在我的 winform c# 应用程序中实现啥形式的身份验证才能访问 SharePoint 站点中的文件夹?

在DataWorks中实现指定UDF只能被指定账户访问

在 .net Project MVC 中实现数据访问层最佳实践

如何使用 C# 在 access 数据库中实现“右外连接”查询?