gpt4 book ai didi

c# - 在 C# 中实现传递身份验证

转载 作者:可可西里 更新时间:2023-11-01 14:15:05 33 4
gpt4 key购买 nike

我正在开发基于 TcpClient/TcpListener 的客户端-服务器应用程序。现在我已经到了需要对用户进行身份验证的地步。我可以在服务器端使用 PrincipalContext-Class 并从客户端请求用户名/密码/域,但我不想通过网络发送凭据。此外,我不想再次询问用户的凭据。所以,我知道支持直通身份验证的 Citrix Receiver。它使用当前登录的用户并且不请求任何凭据并根据服务器对用户进行身份验证。它只是工作。

如何在我的应用程序中执行此操作?我想到了某种可以发送到服务器的 token ,但我找不到任何解决方案。

最佳答案

将 NetworkStream 包装在 NegotiateStream 中,并在客户端和服务器上调用适当的 NegotiateAs... 方法。

客户端可以指定允许的模拟级别,服务器可以指定它需要的级别(最低限度的 Identification 以确定客户端身份,但是如果您需要访问本地或网络资源客户端,您还可以指定 Impersonation,或者通过正确的网络配置指定 Delegation)。

一旦通过身份验证,服务器就可以确定客户端的身份和/或使用 NegotiateStream 的 RemoteIdentity 属性进行模拟。

正如我在评论中提到的,我不知道 Citrix 如何影响此设置(从未使用过),但如果它对应用程序基本上完全透明并且所有内容都使用标准 Windows 凭据,那么这应该可行。

关于c# - 在 C# 中实现传递身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10650514/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com