Войдите в сетевое местоположение с другим идентификатором пользователя pwd через C # - PullRequest
0 голосов
/ 10 ноября 2011

Я проверил все статьи, доступные в Интернете, чтобы найти решение, но не смог решить эту проблему, поэтому просил помощи у нашего сообщества.

Проблема: я копирую файлы и интегрирую их с помощью инструмента, разработанного в C # .net, изсетевое местоположение, которое использует другое имя пользователя, чем учетные данные для входа в Windows.

Сетевой путь выглядит как = \\ company.city.com Идентификатор пользователя: отличается от идентификатора входа в Windows

Мне нужно только войти в системуместоположение, а затем оно остается в системе до тех пор, пока я не выйду, но я хочу войти в систему с помощью кода C #, прежде чем копировать файлы каждый раз.

Я пытался использовать этот код, но он не работает, но выдает ошибку, не зная, почему можетбудь то сетевой путь как веб-расположение.

     WebRequest request = (WebRequest)WebRequest.Create("\\\\company.city.com");
    \\or WebRequest request = (WebRequest)WebRequest.Create("\\\\company.city.com\\folder");
    request.Method = request.Method.Clone;

    request.Credentials = new NetworkCredential("user_id","password");

    WebResponse response = (WebResponse)request.GetResponse();

    Stream responseStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(responseStream);
    Console.WriteLine(reader.ReadToEnd());

1 Ответ

0 голосов
/ 10 ноября 2011

Это веб-сервер или папка? Глядя на код, я предполагаю, что это папка через UNC-путь, а не что-то, обслуживаемое веб-сервером. Если это так, вы пытаетесь присоединиться так, как если бы вы вызывали безопасную веб-страницу с сетевыми учетными данными. Хотя может показаться, что они работают одинаково, аутентификация в сети для доступа к общему ресурсу и выдача сетевых учетных данных на веб-сайт или веб-сервис - совершенно разные функции.

Что вам нужно сделать, так это олицетворение Windows, а не добавлять учетные данные для связи через сокеты. Вот где я бы начал свое путешествие в Google. Я не возился с .NET 4.0, но в предыдущих версиях это означало P / Invoke в некоторой родной библиотеке Windows. Как только вы решите проблему аутентификации и авторизации, захват файла станет намного проще.

...