您如何实现“以不同用户身份查看网站”功能?

时间:2012-05-31 15:34:39

标签: authentication web-applications

我们正在设计一个网站功能,允许一些员工以另一个注册用户的身份查看我们的网站。 我真的很想听听那些已经考虑过这种功能或者实现类似功能的人。

这应该是社区维基。我会在可能的时候将其标记为一个。

2 个答案:

答案 0 :(得分:1)

我过去曾做过两种方式。

最简单的方法是只允许具有足够权限的人以没有密码的任意用户身份登录。这只是一个会话中的登录,完全取代了你是谁,你假装成谁。您可以通过退出并重新登录来返回自己。

另一个是在会话中保持一个标记,说“我真的是用户ABC”并在适当的管理页面上检查该标志(该机制是无关紧要的,但通常可以在大多数框架中巧妙地完成并且基本上不可见)但将会话用户切换到用户XYZ。将使用与第一个相同的“跳过密码”机制。

后者更复杂,但不需要注销/登录,并允许很好的技巧,比如在iframe中运行网站并保持管理菜单可见“退出”特殊模式等等。 / p>

答案 1 :(得分:1)

我见过两种方式:

  1. url参数'changeToUser = login'。过滤器验证您是否有足够的权限来更改您的身份,然后在春季切换您的校长。如果需要,可以在会话中添加标志,指示您的真实身份,并且您有权一次又一次地切换。没有标志,如果没有登录,你将无法再次切换。 这个方法在测试流程应用程序时非常有用(第一个用户做某事,然后是第二个用户响应等)。在dev / uat服务器上,您的应用程序可以呈现正确的链接,只需单击一下即可切换到您需要的用户

  2. 您在登录时更改了ID。您使用伪造的登录信息,例如my-login#login-of-user-i - 假装和你的真实密码。你只需在你的ldap验证器(或你使用的任何东西)之前在链中添加另一个验证器

  3. 第二个适用于没有flow / jbpm进程的小应用程序,当你更喜欢使用此功能来执行某些操作时,因为真实用户生病/不在办公室而且此刻无法登录。但是当你想要测试流程应用程序时,需要大量的开关,那么第一个解决方案会更好,特别是渲染链接