基本上,如果您使用WindowsAuthentication来获取用户名,将其存储在一个变量中,然后将其传递给您使用的任何服务,那么有什么可以阻止别人破解您的代码并传递另一个用户名呢?
在客户端,你可以检查IsAuthenticated,但之后它只允许你获取Windows用户名,而不是Windows密码。
有没有什么方法可以直接传递身份验证对象本身而不让它被黑客攻击?否则,我可能不得不切换回不使用Windows身份验证作为我的身份验证,并使用db表自定义滚动用户/通过。
发布于 2011-11-12 06:15:20
由于"NTLM单跃点“行为,您无法将用户凭据传递到服务器之外。您可以配置Kerberos身份验证来处理需要用户凭据在前端服务器和后端服务器之间流动的情况。
另一种选择是在服务器之间建立信任(例如,使用客户端证书的HTTPS ),以便后端服务器能够信任来自您的服务器的用户名(因为它将是唯一具有正确客户端证书的用户名)。你将不能在后端服务器上模拟用户,因为你只有一个名字。
https://stackoverflow.com/questions/8100551
复制相似问题