Задаване на идентификационни данни за основно удостоверяване на img

Разработвам вътрешно .Net приложение във VS2010 за внедряване в интранета на моята компания. Сайтът използва Windows Authentication, така че потребителите да не се налага да влизат, когато са успешно удостоверени в домейна. За една страница се изисква да получа някаква информация от интранет, включително снимки и друга информация. За снимката на служителя използвам контрола:

<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