我正在尝试开发使用Windows身份验证的Intranet应用程序/网站。
我想用多个用户,角色等来测试它。
目前我只使用自己的域帐户。有没有办法模拟网站的不同用户?
答案 0 :(得分:12)
由于图片胜过千言万语,为了清晰起见,在IE中基于2GDev's comment复制了如何在IE中进行操作:
转到互联网选项=>安全性=>本地Intranet =>自定义级别 并将用户身份验证更改为“提示用户名和 密码“
单击确定,然后单击应用。关闭浏览器。重新打开它并将其指向您要调试的网站的URL。您应该很高兴地看到登录提示,您可以使用其他用户帐户登录以模拟并发性(这就是我现在正在做的):
答案 1 :(得分:6)
使用Windows身份验证时,您可以通过以其他用户身份运行浏览器来更改您的身份。
在Windows中,转到浏览器exe(或快捷方式),右键单击图标,然后从菜单中选择“Run as ..”。这将提示您指定用于运行帐户的用户名和密码。
如果您指定的身份可以访问您正在运行的计算机,则浏览器将以“as”身份运行。如果使用Windows身份验证浏览到某个站点,它将使用指定的标识进行身份验证,而不是您自己的身份。
答案 2 :(得分:2)
使用模拟......
来自MSDN
模拟
ASP.NET应用程序可以使用模拟来执行操作 使用经过身份验证的客户端的安全上下文访问资源 或者是特定的Windows帐户。
在你的web.config
中<identity impersonate="true" username="TestUser" password="P@ssw0rd" />
答案 3 :(得分:0)
如何安装和运行Virtual PC并准备从MS下载已安装的系统?
通过在计算机上运行虚拟PC,您可以模拟与PC的连接,同时,它看起来像是不同的计算机,具有不同的IP。
答案 4 :(得分:0)
在我的例子中,有一些包含用户及其属性的数据库表。在users表中获取登录字段(Domain / UserName)。还有自定义Identity和Principal,它使用此表在global.asax autherticate_request方法中验证用户。
要在调试模式下模拟不同的用户,在母版页(或mvc的布局页面)中呈现特殊控件。它包含所有用户的选择框,并应用按钮。
在服务器端,在应用按钮后单击会话推送模拟用户登录并将刷新发送到响应。
因此,在下一次身份验证事件中,在会话中检查模拟用户登录,如果存在,则基于模拟登录继续进行身份验证。
不好的一面:需要同步服务以始终拥有基于当前AD的实际用户表。