Autenticação do Windows Watin
Eu estou tentando escrever testes Watin para um aplicativo de intranet que usa autenticação integrada. A página da Web que estou tentando testar imprime Page.User.Identity.Name.
Aqui está um pouco do código do meu teste:
if (Win32.LogonUser(u.UserName, u.Domain, u.Password, 2 /*LOGON32_LOGON_INTERACTIVE*/, 0 /*LOGON32_PROVIDER_DEFAULT*/, out hToken))
{
if (Win32.DuplicateToken(hToken, 2, out hTokenDuplicate))
{
WindowsIdentity windowsIdentity = new WindowsIdentity(hTokenDuplicate);
WindowsImpersonationContext impersonationContext = windowsIdentity.Impersonate();
Console.WriteLine(WindowsIdentity.GetCurrent().Name);
using (IE ie = new IE(url))
{
Console.WriteLine(ie.ContainsText(u.UserName));
ie.AutoClose = false;
}
impersonationContext.Undo();
}
}
Quando executo isso, ele imprime o nome de usuário que estou tentando passar para o console, mas a página da Web exibe o usuário no qual estou logado no momento, não o usuário que eu deveria estar representando.
Problema semelhante encontrado em:
Testes automatizados de cenários de autorização implementados com o AzMan