Установка учетных данных для базовой аутентификации img

Я разрабатываю внутреннее приложение .Net в VS2010 для развертывания в интрасети моей компании. На сайте используется проверка подлинности Windows, поэтому пользователям не нужно входить в систему после успешной проверки подлинности в домене. Для одной страницы требуется, чтобы я получил некоторую информацию из интрасети, включая фотографии и другую информацию. Для фотографии сотрудника я использую элемент управления:

<asp:Image ID="imgPhoto" Style="display: inline-block" runat="server" CssClass="EmployeePhoto"
                alt="Photo not available" />

На задней панели это позволяет мне изменять отображаемую фотографию в зависимости от выбора пользователя, изменяя URL-адрес фотографии следующим образом:

imgPhoto.ImageUrl = string.Format("http://{0}/{1}.jpg", MySitePath, employeePhotoPath);

Однако путь защищен паролем. Есть ли способ явно предоставить учетные данные, используемые для доступа к asp: image, чтобы я мог передать учетные данные текущего аутентифицированного пользователя без запроса пользователя на аутентификацию?

ОБНОВЛЕНИЕ

Раньше был способ указать имя пользователя + пароль в теге img, например:

<img src="http://username:password@server/photos/1.jpg"> 

или что-то подобное. Чтобы учетные данные были доступны для доступа к каталогу? Возможно ли это как-нибудь сейчас?


person Rondel    schedule 07.09.2011    source источник
comment
Какую версию IIS вы используете? Это важно. Кроме того, здесь переплетаются три разные проблемы. Первое про firefox решаемо; однако второй вопрос об использовании анонимности как бы похоронен в вашем вопросе. Третий, касающийся третьей стороны, которая недостаточно опытна, чтобы передать имя пользователя и пароль ... ну, это как бы поднимает вопрос о том, почему вы с самого начала пытались пойти по пути NTLM.   -  person NotMe    schedule 08.09.2011
comment
Я использую IIS V6.0, работающий на сервере Windows 2003. Служба PDF, которую мы используем, просто переходит по указанному URL, загружает страницу и экспортирует ее в PDF. Я не могу передать имя пользователя / пароль службе, поэтому я действительно пытаюсь найти способ программно (не совсем то слово, которое я знаю) установить имя пользователя и пароль, используемые для получения фотографии из интрасети. Я использовал проблему Firefox только для более конкретного примера проблемы. Моя анонимная страница настроена на использование учетной записи пользователя домена Windows для аутентификации и имеет разрешения на доступ к фотографиям в интрасети. Как я могу не использовать NTLM?   -  person Rondel    schedule 08.09.2011


Ответы (2)


См .: http://www.1stbyte.com/2008/03/15/automatic-windows-authentication-with-firefox-networkautomatic-ntlm-authtrusted-uris/

или, если вы хотите, чтобы надстройка управляла этим: https://addons.mozilla.org/en-US/firefox/addon/integrated-auth-for-firefox/

person NotMe    schedule 07.09.2011
comment
Это полезно, но работает только на моей машине. Мне нужно решение для всех, кому нужно использовать приложение. Кроме того, это не решит, что внешняя служба не может получить доступ к ресурсам интрасети. спасибо за предложение - person Rondel; 08.09.2011

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

                WebClient myWC = new WebClient();                    
                myWC.Credentials = new System.Net.NetworkCredential(bioSearchUsername, bioSearchPassword);
                string photoPath = Server.MapPath("~/images/Employees/" + employee + ".jpg");
                myWC.DownloadFile(imageLocation, photoPath);

После этого я сослался на локальную копию фотографии на сервере:

imgPhoto.ImageUrl = photoPath;

Это обошло проблемы аутентификации, с которыми я столкнулся с изображением.

person Rondel    schedule 11.10.2011