Security 当用户尝试对我的IIS进行身份验证时,我如何获取有关用户网络的信息?

Security 当用户尝试对我的IIS进行身份验证时,我如何获取有关用户网络的信息?,security,authentication,iis-7,passwords,Security,Authentication,Iis 7,Passwords,我希望用户在工作场所(例如在局域网上)使用其常规用户名和密码进行身份验证。自动登录被禁用 但是-从LAN外部登录应触发2级身份验证(如SMS、邮件或类似)。当用户尝试从LAN外部登录到应用程序时,我们如何获取有关网络的信息 注意:如果你有广告用户和pwd,这并不重要。如果您在外部,则必须触发2级身份验证 NB2-我们不希望任何客户端脚本运行,因此这必须是初始请求附带的内容 技术:iis7、isa2006、.net4、mssql2008server 这里还提出了一个问题: 信息为什么ISA ser

我希望用户在工作场所(例如在局域网上)使用其常规用户名和密码进行身份验证。自动登录被禁用

但是-从LAN外部登录应触发2级身份验证(如SMS、邮件或类似)。当用户尝试从LAN外部登录到应用程序时,我们如何获取有关网络的信息

注意:如果你有广告用户和pwd,这并不重要。如果您在外部,则必须触发2级身份验证

NB2-我们不希望任何客户端脚本运行,因此这必须是初始请求附带的内容

技术:iis7、isa2006、.net4、mssql2008server

这里还提出了一个问题:


信息为什么ISA server删除我需要的信息:

如果合理,请不要将您的web服务器暴露于LAN之外的任何内容—需要VPN访问

如果这不合理,您应该能够使用
REMOTE\u ADDR
变量来确定请求的来源。将局域网列为单因素白名单,并要求所有其他因素都是多因素白名单。根据场景的不同,将类似于

Context.Request.ServerVariables ["REMOTE_ADDR"]


如果您有一个代理,请将代理标记作为标头中的原始IP源,并读取请求标头以确定外部IP。

-1表示不是真正的问题???没有留下任何评论或任何东西?+1来自我。这很清楚也很合理:我如何确定用户是否在局域网上,并据此更改身份验证?谢谢!我们不能要求VPN访问,因为外部有人(阅读:客户)需要能够访问系统。当然,有一个ISA服务器在阻碍我们。我们有一个登台环境,我们将试用它,看看它是如何工作的。@sonstabo您(从业务角度看——技术上很容易做到)能要求员工登录在VPN中,但不影响客户吗?不太可能。这将增加成本,并在现有的复杂基础设施中引入另一个要素。我完全明白你的意思,但我恐怕这不是一个选择,至少现在是这样。但我会记住这一点,以备将来可能出现的新需求。在我们使用ISA服务器进行测试之前,这是一个很好的想法。它剥离了每一条信息,客户机最终来自ISA服务器本身(或是@IIS接收到的信息),即使设置了“原始客户机”标志。@sonstabo如果查看IP数据,它将始终显示来自ISA。您需要在HTTP请求中有一个原始IP头并检查它。
Request.UserHostAddress()