【问题标题】:Testing intranet site that uses Windows authentication测试使用 Windows 身份验证的 Intranet 站点
【发布时间】:2011-07-26 10:32:53
【问题描述】:

我正在尝试开发一个使用 Windows 身份验证的 Intranet 应用程序/网站。

我想针对多个用户、角色等进行测试。

目前我只使用自己的域帐户。有没有办法可以模拟网站的不同用户?

【问题讨论】:

    标签: c# .net testing windows-authentication intranet


    【解决方案1】:

    因为一张图片值一千字,所以为了清楚起见,这里根据2GDev's comment 在 IE 中进行操作:

    转到 Internet 选项 => 安全 => 本地 Intranet => 自定义级别 并将用户身份验证更改为“提示输入用户名和 密码”

    单击确定,然后单击应用。关闭浏览器。重新打开它并将其指向您要调试的网站的 URL。您应该很高兴看到登录提示,您可以在其中使用不同的用户帐户登录以模拟并发(这就是我现在在这里所做的):

    【讨论】:

    • 这比我的回答有优势,因为用户帐户不需要有在机器上运行的权限;凭据应仅用于远程身份验证,并且浏览器仍以原始本地用户身份运行。
    【解决方案2】:

    当您使用 Windows 身份验证时,您可以通过以其他用户身份运行浏览器来更改您的身份。

    在 Windows 中,转到浏览器 exe(或快捷方式),右键单击图标并从菜单中选择“运行为..”。这将提示您指定运行帐户的用户名和密码。

    如果您指定的身份可以访问您正在运行的机器,那么浏览器将按照指定的身份运行。如果您使用 Windows 身份验证浏览网站,它将使用指定的身份进行身份验证,而不是您自己的身份。

    【讨论】:

    • 不知道 - 但有道理。
    【解决方案3】:

    使用模拟...

    来自MSDN

    模仿

    ASP.NET 应用程序可以使用模拟来执行操作和 使用经过身份验证的客户端的安全上下文访问资源 或特定的 Windows 帐户。

    在你的 web.config 中

    <identity impersonate="true" username="TestUser" password="P@ssw0rd" />
    

    【讨论】:

    • 我假设他们希望客户端模拟登录,而不是 Intranet 本身。
    • 我认为这个答案没有抓住问题的重点。模拟告诉应用程序以登录用户的身份回答任何授权挑战,有效地取代了应用程序池的身份。 它不允许您以其他用户身份登录应用程序。
    • 你是对的......这个答案在这种情况下是不正确的。他们可以尝试在 Web 浏览器上更改登录用户。在 IE 上转到 Internet 选项 -> 安全 -> 本地 Intranet -> 自定义级别并将用户身份验证更改为“提示输入用户名和密码”...
    • @2GDev 我添加了一个答案stackoverflow.com/a/19129704/114029 来说明您的评论。感谢分享!它真的很有帮助。 :)
    【解决方案4】:

    如何安装和运行Virtual PC 以及一些可以从 MS 下载的已安装系统?

    通过在您的计算机上运行虚拟 PC,您可以模拟与您的 PC 的连接,同时,它看起来就像一台不同的计算机,具有不同的 Ip。

    【讨论】:

      【解决方案5】:

      在我的例子中,有带有用户及其属性的数据库表。在用户表中有登录字段(域/用户名)。还获得了自定义身份和主体,它们使用此表在 global.asax autherticate_request 方法中对用户进行身份验证。

      为了在调试模式下模拟不同的用户,在母版页(或 mvc 的布局页)中呈现了特殊的控件。它包含所有用户的选择框和应用按钮。

      在会话中单击应用按钮后在服务器端推送模拟用户登录并发送刷新以响应。

      因此,在下一个身份验证事件中,会检查会话中的模拟用户登录,如果存在,则根据模拟登录继续进行身份验证。

      不好的一面:需要同步服务才能始终拥有基于当前 AD 的实际用户表。

      【讨论】:

        猜你喜欢
        • 2012-03-03
        • 1970-01-01
        • 2017-04-17
        • 2010-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-31
        • 2017-05-14
        相关资源
        最近更新 更多