Я хочу создать приложение формы Windows и хочу использовать проверку подлинности Windows для входа пользователя, его нужно использовать в интрасети. приложение должно принять имя пользователя и пароль от пользователя и должно аутентифицировать его. как этого добиться.
Dotnet: - Как добиться аутентификации Windows в приложении оконной формы?
comment
Вот одна из реализации
- person Sanjeevakumar Hiremath   schedule 16.03.2011
comment
@ Санджив :- я воспользовался твоей идеей. Спасибо за помощь
- person Prachur   schedule 16.03.2011
Ответы (3)
Этого можно добиться с помощью Interop Services. Используйте приведенный ниже код.
[System.Runtime.InteropServices.DllImport("advapi32.dll")]
public static extern bool LogonUser(string userName, string domainName, string password, int LogonType, int LogonProvider, ref IntPtr phToken);
public bool IsValidateCredentials(string userName, string password, string domain)
{
IntPtr tokenHandler = IntPtr.Zero;
bool isValid = LogonUser(userName, domain, password, 3, 0, ref tokenHandler);
return isValid;
}
person
The King
schedule
16.03.2011
Environment.UserName
дает вам имя пользователя текущего пользователя. Пароль не требуется, так как пользователь вошел в Windows.
Альтернатива: WindowsIdentity.GetCurrent()
person
jgauffin
schedule
16.03.2011
Environment.Username дает мне имя пользователя, вошедшего в систему, но достаточно ли этого, чтобы разрешить вход в мое приложение? Естественно, мне нужно будет сопоставить вошедшего в систему пользователя с пользователем в моей таблице пользователей, и выполнение этого только по имени пользователя выглядит слабым. Что, если кто-то создаст на своем компьютере локальный домен с тем же именем, что и домен интранета, и создаст пользователя с именем того, кого он хочет взломать. Таким образом, он может войти в систему с любым пользователем буквы. Я ошибся?
- person e-mre; 30.11.2011
Вы нашли решение? У нас есть проверка подлинности Windows в нашем настольном приложении, но мы не проверяем домен, что означает, что любой может войти в систему с локальным доменом и соответствующим именем пользователя.
- person Ankit Vora; 10.09.2018
Вы можете использовать
WindowsIdentity.GetCurrent()
, там у вас есть доменное имя
- person jgauffin; 10.09.2018
Пожалуйста, перейдите по следующей ссылке, чтобы применить аутентификацию Windows во внутренней сети:
http://msdn.microsoft.com/library/bb882216.aspx
person
Shivkant
schedule
16.03.2011