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,
|
if (!(ret = CredUIPromptForCredentialsW( cred_info, target, NULL, error, username,
|
||||||
len_username, password, len_password, save, flags )))
|
len_username, password, len_password, save, flags )))
|
||||||
{
|
{
|
||||||
DWORD size = sizeof(*id);
|
DWORD size = sizeof(*id), len_domain = 0;
|
||||||
WCHAR *ptr;
|
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 );
|
len_password = strlenW( password );
|
||||||
|
|
||||||
size += (len_username + 1) * sizeof(WCHAR);
|
size += (len_username + 1) * sizeof(WCHAR);
|
||||||
|
size += (len_domain + 1) * sizeof(WCHAR);
|
||||||
size += (len_password + 1) * sizeof(WCHAR);
|
size += (len_password + 1) * sizeof(WCHAR);
|
||||||
if (!(id = HeapAlloc( GetProcessHeap(), 0, size ))) return ERROR_OUTOFMEMORY;
|
if (!(id = HeapAlloc( GetProcessHeap(), 0, size ))) return ERROR_OUTOFMEMORY;
|
||||||
ptr = (WCHAR *)(id + 1);
|
ptr = (WCHAR *)(id + 1);
|
||||||
|
|
||||||
memcpy( ptr, username, (len_username + 1) * sizeof(WCHAR) );
|
memcpy( ptr, user, (len_username + 1) * sizeof(WCHAR) );
|
||||||
id->User = ptr;
|
id->User = ptr;
|
||||||
id->UserLength = len_username;
|
id->UserLength = len_username;
|
||||||
ptr += len_username + 1;
|
ptr += len_username + 1;
|
||||||
id->Domain = NULL;
|
if (len_domain)
|
||||||
id->DomainLength = 0;
|
{
|
||||||
|
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) );
|
memcpy( ptr, password, (len_password + 1) * sizeof(WCHAR) );
|
||||||
id->Password = ptr;
|
id->Password = ptr;
|
||||||
id->PasswordLength = len_password;
|
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/comctl32 # Synced to WineStaging-1.9.23
|
||||||
reactos/dll/win32/comdlg32 # 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/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/crypt32 # Synced to WineStaging-1.9.23
|
||||||
reactos/dll/win32/cryptdlg # Synced to WineStaging-1.9.11
|
reactos/dll/win32/cryptdlg # Synced to WineStaging-1.9.11
|
||||||
reactos/dll/win32/cryptdll # Synced to WineStaging-1.9.11
|
reactos/dll/win32/cryptdll # Synced to WineStaging-1.9.11
|
||||||
|
|
Loading…
Reference in a new issue