测试使用 Windows 身份验证的 Intranet 站点
我正在尝试开发一个使用 Windows 身份验证的 Intranet 应用程序/网站。
我想用多个用户、角色等来测试它。
目前我只使用我自己的域帐户。有没有办法可以模拟该网站的不同用户?
I'm trying to develop an intranet app/website that uses Windows authentication.
I'd like to test it with multiple users, for roles etc.
At the moment I'm only using my own domain account. Is there a way I could simulate different users for the site?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
由于一张图片值一千字,这里介绍了如何在 IE 中基于 为了清楚起见,复制了 2GDev 的评论:
单击“确定”,然后单击“应用”。关闭浏览器。重新打开它并将其指向您想要的网站的 URL您应该很高兴看到登录提示,您可以使用不同的用户帐户登录来模拟并发(这就是我现在在这里所做的):
As a picture is worth a thousand words here it goes how to do it in IE based on 2GDev's comment copied here for clarity:
Click OK then Apply. Close the browser. Reopen it and point it to the website's URL you want to debug. You should happily see the login prompt where you can login with a different User account to simulate concurrency for example (this is what I'm doing right now here):
使用 Windows 身份验证时,您可以通过以其他用户身份运行浏览器来更改您的身份。
在 Windows 中,转到浏览器 exe(或快捷方式),右键单击该图标,然后从菜单中选择“运行为..”。这将提示您指定用于运行帐户的用户名和密码。
如果您指定的身份可以访问您正在运行的计算机,则浏览器将“作为”指定的身份运行。如果您浏览到使用 Windows 身份验证的站点,它将使用指定的身份(而不是您自己的身份)进行身份验证。
When you use Windows Authentication you can change your identity by running the browser as another user.
In windows, go to the browser exe (or a shortcut), right-click on the icon and select "Run as.." from the menu. This will prompt you to specify the username and password to run the account under.
Provided the identity you specify has access to the machine you are running on, the browser will then be running "as" identity specified. If you browse to a site using Windows Authentication, it will authenticate using the identity specified, instead of your own.
使用模拟...
来自 MSDN
在你的 web.config 中
Use Impersonation...
From MSDN
And in your web.config
如何安装并运行虚拟电脑并安装一些可供下载的内容来自微软的系统?
通过在计算机上运行虚拟电脑,您可以模拟与您的电脑的连接,同时,它看起来就像一台不同的计算机,具有不同的 IP。
How about to install and run the Virtual PC with some ready for download installed systems from MS ?
By running a virtual pc on your computer you can emulate connections to your pc and at the same time, its looks like a diferent computer, with diferent Ip.
就我而言,有包含用户及其属性的数据库表。在用户表中有登录字段(域/用户名)。还获得了自定义身份和主体,它使用此表在 global.asax autherticate_request 方法中对用户进行身份验证。
为了在调试模式下模拟不同的用户,在母版页(或 mvc 的布局页)中呈现了特殊的控件。它包含包含所有用户的选择框和应用按钮。
在服务器端,单击会话中的“应用”按钮后,将推送模拟用户登录并发送刷新以响应。
因此,在下一个身份验证事件中,会检查会话中的模拟用户登录,如果存在,则根据模拟登录继续进行身份验证。
不好的一面:需要同步服务来始终拥有基于当前 AD 的实际用户表。
In my case, there are db tables with users and their properties. In users table got login field (Domain/UserName). Also got custom Identity and Principal, which using this table to authenticate user in global.asax autherticate_request method.
To simulate different users in debug mode, there is special control rendered in master page (or layout page for mvc). It contain select box with all users, and apply button.
On server side after apply button click in session pushed emulated user login and sending refresh to response.
So in next authenticate event occured checking for emulated user login in session and if it exists then authenticate continues based on emulateded login.
Bad side: need sync service to always have actual user table based on current AD.