.NET Windows集成身份验证
时间:2020-03-06 14:43:21 来源:igfitidea点击:
我正在寻找向现有协议添加扩展的最佳/最简便方法(无法轻松更改实际协议)以允许用户在.NET中进行Windows身份验证(NTLM?)。我已经看过AuthenticationManager类,但是它要求我使用Web(Http)Request,这不是一个选择。 NegotiateStream是一个选项,因为我想将此集成到现有协议中,而不是将其包装到新协议中。除了这两个以外,我还有其他选择吗?
解决方案
我假设因为我们不能执行HTTPRequest,所以这是一个桌面软件。
Active Directory和LDAP是我们最有可能会使用的协议。
我认为System.Environment和System.DirectoryServices将成为开始的地方。
我喜欢DirectorySearcher和Environment.UserName来获取有关用户的任何信息。
我希望这有帮助。
如果我们只能扩展协议,那么执行此操作的一种方法是编写自己的Stream类,然后将其传递给NegotiateStream,然后仅接收NegotiateStream提供的消息并放入我们自己的协议,然后通过流类。
但是,如果可能的话,最简单的方法是将整个协议(Stream)包装在NegotiateStream中...