mirror of
https://github.com/reactos/reactos.git
synced 2024-08-19 18:02:55 +00:00
[CREDUI] Sync with Wine Staging 2.2. CORE-12823
848f478 credui: Split domain from username in SspiPromptForCredentialsW. svn path=/trunk/; revision=73944
This commit is contained in:
parent
69dc549fdb
commit
1e842f0e63
|
@ -911,23 +911,45 @@ ULONG SEC_ENTRY SspiPromptForCredentialsW( PCWSTR target, void *info,
|
|||
if (!(ret = CredUIPromptForCredentialsW( cred_info, target, NULL, error, username,
|
||||
len_username, password, len_password, save, flags )))
|
||||
{
|
||||
DWORD size = sizeof(*id);
|
||||
WCHAR *ptr;
|
||||
DWORD size = sizeof(*id), len_domain = 0;
|
||||
WCHAR *ptr, *user = username, *domain = NULL;
|
||||
|
||||
len_username = strlenW( username );
|
||||
if ((ptr = strchrW( username, '\\' )))
|
||||
{
|
||||
user = ptr + 1;
|
||||
len_username = strlenW( user );
|
||||
if (!strcmpiW( package, ntlmW ) || !strcmpiW( package, negotiateW ))
|
||||
{
|
||||
domain = username;
|
||||
len_domain = ptr - username;
|
||||
}
|
||||
*ptr = 0;
|
||||
}
|
||||
else len_username = strlenW( username );
|
||||
len_password = strlenW( password );
|
||||
|
||||
size += (len_username + 1) * sizeof(WCHAR);
|
||||
size += (len_domain + 1) * sizeof(WCHAR);
|
||||
size += (len_password + 1) * sizeof(WCHAR);
|
||||
if (!(id = HeapAlloc( GetProcessHeap(), 0, size ))) return ERROR_OUTOFMEMORY;
|
||||
ptr = (WCHAR *)(id + 1);
|
||||
|
||||
memcpy( ptr, username, (len_username + 1) * sizeof(WCHAR) );
|
||||
memcpy( ptr, user, (len_username + 1) * sizeof(WCHAR) );
|
||||
id->User = ptr;
|
||||
id->UserLength = len_username;
|
||||
ptr += len_username + 1;
|
||||
if (len_domain)
|
||||
{
|
||||
memcpy( ptr, domain, (len_domain + 1) * sizeof(WCHAR) );
|
||||
id->Domain = ptr;
|
||||
id->DomainLength = len_domain;
|
||||
ptr += len_domain + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
id->Domain = NULL;
|
||||
id->DomainLength = 0;
|
||||
}
|
||||
memcpy( ptr, password, (len_password + 1) * sizeof(WCHAR) );
|
||||
id->Password = ptr;
|
||||
id->PasswordLength = len_password;
|
||||
|
|
|
@ -57,7 +57,7 @@ reactos/dll/win32/comcat # Synced to WineStaging-1.9.11
|
|||
reactos/dll/win32/comctl32 # Synced to WineStaging-1.9.23
|
||||
reactos/dll/win32/comdlg32 # Synced to WineStaging-1.9.23
|
||||
reactos/dll/win32/compstui # Synced to WineStaging-2.2
|
||||
reactos/dll/win32/credui # Synced to WineStaging-1.9.16
|
||||
reactos/dll/win32/credui # Synced to WineStaging-2.2
|
||||
reactos/dll/win32/crypt32 # Synced to WineStaging-1.9.23
|
||||
reactos/dll/win32/cryptdlg # Synced to WineStaging-1.9.11
|
||||
reactos/dll/win32/cryptdll # Synced to WineStaging-1.9.11
|
||||
|
|
Loading…
Reference in a new issue