У меня возникли трудности с автоматическим входом пользователей в мое приложение Active Directory для рабочего стола.Возможно, я пытаюсь сделать единый вход, но у меня сложилось впечатление, что он предназначен только для веб-приложений.
Код, который у меня есть, таков:
PrincipalContext theContext = new PrincipalContext(ContextType.Domain);
if (theContext.ValidateCredentials(null, null))
Console.WriteLine("Credentials have been validated. Tell your friends.");
else
Console.WriteLine("Invalid credentials");
UserPrincipal user = new UserPrincipal(theContext, "uatu", "Passw0rd", true);
user.Save();
Файл PrincipalContext создаетсябез ошибок, и я проверяю полномочия.Я предполагал, что это подтвердит меня как пользователя, который вошел в систему на компьютере, который находится в домене Active Directory.И я могу найти пользователей и группы.Но как только я вызываю user.Save (), я получаю сообщение об ошибке «Доступ запрещен».На самом ли деле я вхожу в Active Directory как гость?
Если я задаю имя пользователя и пароль в ValidateCredentials, это не поможет.
PrincipalContext theContext = new PrincipalContext(ContextType.Domain);
if (theContext.ValidateCredentials("<username>", "<password", ContextOptions.Negotiate | ContextOptions.Signing | ContextOptions.Sealing))
Console.WriteLine("Credentials have been validated. Tell your friends.");
else
Console.WriteLine("Invalid credentials");
UserPrincipal user = new UserPrincipal(theContext, "uatu", "Passw0rd", true);
user.Save();
Этот код по-прежнему не выполняется для пользователя.Сохранить().Если я явно задаю имя пользователя и пароль, совпадающие с именем зарегистрированного пользователя в конструкторе PrincipalContext, я получаю успех.
PrinicipalContext theContext = new PrincipalContext(ContextType.Domain,"<address>", "<domain context>", "<username>", "<password>");
UserPrincipal user = new UserPrincipal(theContext, "uatu", "Passw0rd", true);
user.Save();
Этот код завершается успешно.Но я бы предпочел, чтобы пользователи не входили в мое приложение после того, как они вошли на свой компьютер с такими же учетными данными.
Я немного слышал о «Партнерском приложении», поэтому мне интересно,Я должен сообщить Active Directory, что он может доверять моему приложению.Я все еще не могу понять подробности и не знаю, является ли это неправильным направлением.
У кого-нибудь есть идеи относительно того, что мне следует делать?