Получить учетные данные сети от текущего пользователя в приложении аутентификации 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();