C#-在WinForms中实现单点登录(与Outlook一样)
我已经创建了一个服务器/客户端应用程序。它们都是用C写的。它使用TCP/IP通信和自定义SSL实现。 当前,登录过程需要用户名/密码对才能登录 我被要求实现单点登录,以消除对用户名/密码的需要 因此,现在当客户端启动时,它确定当前登录用户的SID,并将其发送到服务器,服务器通过SID将此连接映射到用户 这个解决方案运行良好,但我认为它根本不是一个安全的解决方案 客户机有一个强名称,当然它是模糊的 我开始思考如何破解这个登录,我认为从黑客的角度来看这很容易: -在网络上查找用户的SID不是问题 -删除强名称并更改适当的代码以使用硬编码SID而不是当前SID可以很容易地实现 那你觉得呢? 你能给我一个更好的解决方案吗? 你能告诉我如何提高安全性吗 或者您能告诉我Outlook如何处理用户身份验证吗?(我想/希望欺骗Outlook不是那么容易)C#-在WinForms中实现单点登录(与Outlook一样),winforms,login,single-sign-on,sid,Winforms,Login,Single Sign On,Sid,我已经创建了一个服务器/客户端应用程序。它们都是用C写的。它使用TCP/IP通信和自定义SSL实现。 当前,登录过程需要用户名/密码对才能登录 我被要求实现单点登录,以消除对用户名/密码的需要 因此,现在当客户端启动时,它确定当前登录用户的SID,并将其发送到服务器,服务器通过SID将此连接映射到用户 这个解决方案运行良好,但我认为它根本不是一个安全的解决方案 客户机有一个强名称,当然它是模糊的 我开始思考如何破解这个登录,我认为从黑客的角度来看这很容易: -在网络上查找用户的SID不是问题 -
谢谢大家! 要使用Windows身份验证进行身份验证,可以使用
NegotiateStream
MSDN提供了一个不错的示例,可用于执行身份验证: