Получить учетные данные сети от текущего пользователя в приложении аутентификации Windows

Мне было интересно, возможно ли получить текущий объект пользователя и получить его учетные данные, чтобы я мог передать их NetworkCredential объект, который я использую для подключения к своему AX .NET Business Connector. Как, в данный момент я должен указать это подключиться как конкретный пользователь, который я устанавливаю при создании экземпляра NetworkCredential объект:

private NetworkCredential nc = new NetworkCredential("myUser", "myPassword", "myDomain");

Я надеялся сделать что-то вроде: private NetworkCredential nc = (NetworkCredential)HttpContext.User; но очевидно, что это не сработает...

Таким образом, легче отслеживать, например, какой пользователь создал заказ на продажу, так как в настоящий момент все создается пользователем, которого я указал.

3 ответа

Решение

CredentialCache.DefaultNetworkCredentials?

Учетные данные, возвращенные DefaultNetworkCredentials представляет учетные данные аутентификации для текущего контекста безопасности, в котором работает приложение. Для клиентского приложения это обычно учетные данные Windows (имя пользователя, пароль и домен) пользователя, запустившего приложение.

Я не до конца понимаю ваш вопрос, но для вашего звонка из ASP.NET требуются учетные данные? Вы можете попытаться:

Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");

Предполагая, что ваш пользователь уже прошел аутентификацию через поставщика членства.

Комбинация вышеперечисленного отлично сработала для меня, чтобы разрешить аутентификацию.

      var credentials = new NetworkCredential();
ICredentials credent = CredentialCache.DefaultNetworkCredentials;
credentials = (NetworkCredential)credent;
var serverId = new LdapDirectoryIdentifier(GlobalVariables.LDAPServer);

LdapConnection connection = new LdapConnection(serverId, credentials);
connection.Bind();
Другие вопросы по тегам