首页 > 解决方案 > 如何在 C# 中通过 CIFS 中的 Socket 发送 SMB_COM_SESSION_SETUP_ANDX 请求?

问题描述

如何在 C# 中通过 CIFS 中的 Socket 发送 SMB_COM_SESSION_SETUP_ANDX 请求?我想发送此请求并从 C# 中的目标地址获得响应。我想以 CIFS 格式发送 CIFS 请求。

任何代码片段都受到高度赞赏。

提前致谢。

标签: c#tcpsmb

解决方案


本质上,您需要实现能够执行请求和解释响应所需的 CIFS 协议的所有方面。这里的起点是CIFS 规范和/或通用 Internet 文件系统 (CIFS) 技术参考

通常,此请求是SMB_COM_NEGOTIATECIFS 消息交换中的第二个请求(在选择要使用的 CIFS/SMB 方言之后),代表协议的用户登录阶段。

如果您只需要能够针对 CIFS 服务器对用户进行身份验证,则范围可能足够小以使自定义实现变得可行。不过,这取决于您需要哪种身份验证。如果基于明文密码的身份验证就足够了,您可以坚持使用最简单的身份验证机制。否则,在 NTLM/Kerberos 的情况下(如在明文密码的情况下,不应再从安全 POV 使用 NTLM),事情会变得更加复杂,通常需要多次往返才能完成身份验证过程。

一个更简单的替代方案是SMBLibrary,它实现了基于 C# 的协议。


推荐阅读