Получение сетевых учетных данных от текущего пользователя в приложении проверки подлинности Windows
Мне было интересно, можно ли получить текущий пользовательский объект и получить их учетные данные, чтобы я мог передать их вместе с объектом NetworkCredential
, который я использую для подключения к моему AX.NET Business Connector. Поскольку на данный момент мне нужно указать его как отдельный пользователь, который я установил, когда создаю объект NetworkCredential
:
private NetworkCredential nc = new NetworkCredential("myUser", "myPassword", "myDomain");
Я надеялся сделать что-то вроде: private NetworkCredential nc = (NetworkCredential)HttpContext.User;
, но, очевидно, это не сработает...
Таким образом, проще отслеживать, какой пользователь создал заказ клиента, например, так как на данный момент все создается пользователем, указанным пользователем.
Ответы
Ответ 1
CredentialCache.DefaultNetworkCredentials
?
Учетные данные, возвращаемые DefaultNetworkCredentials
, представляют собой учетные данные для проверки подлинности для текущего контекста безопасности, в котором работает приложение. Для клиентского приложения обычно это учетные данные Windows (имя пользователя, пароль и домен) пользователя, запускающего приложение.
Ответ 2
Я не совсем понимаю ваш вопрос, но ваш вызов поступает из ASP.NET, для которого требуются учетные данные? Вы можете попробовать:
Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");
Предполагая, что ваш пользователь уже прошел аутентификацию через поставщика членства.