【问题标题】:ASP.NET: windows authentication against production serverASP.NET:针对生产服务器的 Windows 身份验证
【发布时间】:2023-03-20 14:05:01
【问题描述】:

这是一个真正的快速问题,是否可以允许 ASP.Net Intranet 站点(在测试服务器上)的 Windows 身份验证针对生产服务器用户帐户进行身份验证?如果是这样,我将如何去做。

【问题讨论】:

    标签: asp.net windows-authentication


    【解决方案1】:

    如果它们是内置域的一部分。如果它们位于不同的域中,则需要域之间的信任,然后只需在前面添加域名即可“内置”生产用户名。如果它们在独立的机器上,那么在机器之间建立信任并允许来自“工作组”的用户进入时,这将变得非常复杂。如果您的服务器由服务器管理团队(如大多数大公司)管理,则很可能在生产域中的机器和测试域中的机器之间不会建立信任。许多公司安全政策禁止这种交互。

    【讨论】:

    • 每个用户都在域以及生产服务器上,但测试服务器不在。然而,有趣的是,当 Intranet 站点启动时,没有出现登录屏幕(身份验证模式设置为 Windows),所以我必须强制登录屏幕吗?当技术上用户未登录该站点时,我不确定如何添加域名。
    • @mattgcon - 如果您已经在使用 Windows 身份验证并且您没有获得登录框,那么您应该能够将 Request.ServerVariables["LOGON_USER"] 写入页面以查看正在使用的用户名查看页面。这应该让您知道机器接受的用户当前输入的位置。您正在寻找的行为可能已经作为域架构的一部分实现。
    • 我不确定我是否完全理解。测试服务器不在域上,用户不存在于测试服务器上,但他们确实存在于我们的域中。当我查询查看用户登录时,它显示“TEST\xxxxxxx”,这不是我们的域。如果没有出现登录框,我将如何告诉测试服务器对域进行身份验证或在应用程序中发生这种情况。
    • 如果显示 test\xxxx 则表示您已经登录到测试域。您需要登录到您正在使用的机器上的生产域,以便让该用户出现在 LOGON_USER 中。这就是集成 Windows 身份验证的意义所在。
    • 我明白,但我不明白的是,当用户将针对测试服务器测试站点时,如何强制 Windows 身份验证对生产服务器进行身份验证。
    【解决方案2】:

    您必须在 web.config 中添加类似的内容

     <system.web>
      ...
      <authentication mode="Windows"/>
      ...
     </system.web>
    

    并以 SYSTEM-NAME\用户名和密码登录。

    【讨论】:

      猜你喜欢
      • 2016-06-10
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 2010-10-04
      相关资源
      最近更新 更多