2011-08-26 56 views
0

我有一个在IIS 7上运行并使用Windows身份验证的ASP.NET应用程序。出于测试目的,我们的每个测试用户都在该域中为他们设置了5个测试帐户。他们需要多个帐户,因为他们需要测试应用程序中的不同角色。用户正在使用IE7。使用Windows身份验证对Web应用程序使用多个测试帐户的最佳方法?

,我可以看到可以允许用户登录到应用程序下的不同帐户的选项有:

1)注销Windows并重新登录为所需的测试帐号。 (对用户不太实际)。

2)让用户右键单击Internet Explorer并选择“作为...运行”,然后输入所需测试帐户的凭证。 (对于用户来说不太直观,另外一些功能在IE7中运行时也不能正常工作,例如书签,打印机)

3)使用Firefox或Chrome。 (不是一种选择,不幸)

4)不要使用Windows身份验证(Windows身份验证是要求)

5)更新IE选项,以防止其自动登录到网站(这会工作,但它会因为他们使用许多其他使用Windows身份验证的网站,所以对用户来说是个烦恼)。

6)在IIS/ASP.NET中找到阻止IE自动登录的方法? (我还没有看到这样做的任何方式,但有兴趣听到任何建议)。

任何人都可以想到更好的方法吗?

谢谢。

+0

与其使用不同的域帐户,出于测试目的,您是不是可以首先向用户显示允许他们选择角色的页面? –

+0

否。用户是针对特定角色设置的。他们可以在应用程序中更改帐户的角色,但它有点复杂。此外,不同角色之间还有工作流程,所以您确实需要使用不同角色设置的多个帐户才能正确测试。为了达到上述目的,也会将功能引入到应用程序中,仅用于测试目的 - 它永远不会用于生产。我不喜欢实施仅用于测试目的的代码更改。 – Rezler

回答

1

我相信#2是您最好的基础。

就用户直观而言:如何在各种测试帐户下启动Windows Forms应用程序?

我要尝试建立一个快速测试应用程序,但发现这个职位,第一:

http://fraserchapman.blogspot.com/2007/07/programmatic-runas-in-c.html

一两分钟后,我得到这个工作:

using System; 
using System.Diagnostics; 

namespace TestRunAs 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      RunAs("C:\\Program Files\\Internet Explorer\\iexplore.exe", "TestUser5", "TestUser5Password"); 
     } 

     static void RunAs(string path, string username, string password) 
     { 
      var secureString = new System.Security.SecureString(); 
      foreach (char c in password) 
      { secureString.AppendChar(c); } 
      ProcessStartInfo myProcess = new ProcessStartInfo(path); 
      myProcess.UserName = username; 
      myProcess.Password = secureString; 
      myProcess.UseShellExecute = false; 
      Process.Start(myProcess); 
     } 
    } 
} 

显而易见的缺点是:密码在应用程序内部浮动,所以我希望这些“测试帐户”在您的项目完成后将被删除。

后续工作:我开始四处寻找有关SecureString的信息。 MSDN的使用例子是EXACTLY你现在要做的,只是用记事本替代:

http://msdn.microsoft.com/en-us/library/system.security.securestring.aspx

+0

嗯,我喜欢这个。一个小胜利形式的应用程序,会弹出并询问他们的用户名和密码。唯一的麻烦是要在所有机器上获得应用程序。它必须经过公司的安全团队。谢谢! – Rezler

+0

@Rezler:看看这个:http://msdn.microsoft.com/en-us/library/xc31ft41.aspx - 如果您使用与安全团队共享的密钥签署程序集,他们可以授权在他们的领域政策和生活应该是好的。祝你好运! –

1

一个建议:你不能使用VMware或虚拟PC,并有用户的虚拟PC的切换去测试。

+0

不幸的不是。大约有20位测试人员在不同的公司,因此试图让他们的系统设置所有这些都是一场噩梦。尽管我没有想到好主意。 – Rezler

相关问题