You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OPC UA:如何从Session中获取Authentication Token?

OPC UA客户端获取Authentication Token的简便方案

推荐方案:直接使用库封装的服务方法

你完全不需要手动构造RequestHeader来调用DeleteNodes服务。OPC UA的.NET客户端库已经封装了DeleteNodes的调用逻辑,会自动填充包含正确Authentication Token的RequestHeader。示例代码:

// 构造要删除的节点列表
var nodesToDelete = new List<DeleteNodesItem>
{
    new DeleteNodesItem 
    { 
        NodeId = new NodeId("ns=2;s=YourTargetNode"), 
        DeleteTargetReferences = true 
    }
};

// 直接调用库的内置方法,无需手动处理RequestHeader
await session.DeleteNodes(nodesToDelete).ConfigureAwait(false);

手动构造RequestHeader时的获取方式

如果确实需要手动构造RequestHeader,有两种简便方式获取Authentication Token:

  • 方式一:使用Session公开的RequestHeader属性
    Session类提供了公开的RequestHeader属性,该对象已经预填充了Authentication Token,直接取用即可:
    if (session.Connected)
    {
        m_session = session;
        var requestHeader = session.RequestHeader;
        var authenticationToken = requestHeader.AuthenticationToken;
        // 用此token构造自定义RequestHeader
    }
    
  • 方式二:直接取Session的Id属性
    在OPC Foundation的UA .NET标准库中,Session的AuthenticationToken与Id属性指向同一个NodeId实例,因此可以直接通过session.Id获取:
    var authenticationToken = session.Id;
    

以上方法均无需自定义Session子类,完全利用库的公开API实现,简洁且符合框架设计规范。

内容的提问来源于stack exchange,提问作者Kaasper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:42:32