Watin Uwierzytelnianie Windows
Próbuję napisać testy Watina dla aplikacji intranetowej, która korzysta ze zintegrowanego uwierzytelniania. Strona internetowa, którą próbuję przetestować, drukuje Page.User.Identity.Name.
Oto część kodu z mojego testu:
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();
}
}
Gdy to uruchomię, drukuje nazwę użytkownika, którą próbuję podszyć się pod konsolę, ale strona internetowa wyświetla użytkownika, na którym jestem aktualnie zalogowany, a nie użytkownika, którego powinienem podszywać.
Podobny problem znaleziono w:
Automatyczne testowanie scenariuszy autoryzacji za pomocą AzMan