测试使用Windows身份validation的Intranet站点

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

我想用多个用户,角色等来测试它。

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

由于图片在这里值得千言万语,因此基于2GDev在此处复制的评论为清晰起见,它是如何在IE中完成的 :

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

在此处输入图像描述

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

在此处输入图像描述

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

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

如果您指定的标识有权访问您运行的计算机,则浏览器将以“as”身份运行。 如果使用Windows身份validation浏览到某个站点,它将使用指定的标识进行身份validation,而不是使用您自己的标识。

使用假冒……

来自MSDN

模拟

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

并在您的web.config中

 

如何安装和运行虚拟PC,并准备从MS下载已安装的系统?

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

在我的例子中,有用户及其属性的db表。 在users表中获取登录字段(Domain / UserName)。 还有自定义Identity和Principal,它使用此表在global.asax autherticate_request方法中validation用户。

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

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

因此,在下一个身份validation事件发生时,检查会话中的模拟用户登录,如果存在,则基于模拟登录继续进行身份validation。

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