Toon posts:

[.Net] impersonatie & authenticatie

Pagina: 1
Acties:

Verwijderd

Topicstarter
edit:

oplossing gevonden: zie post hieronder

Ik ben een website aan het maken in asp.Net waar gebruikers een file moeten wegschrijven op een verborgen netwerkshare. Daarvoor heb ik impersonatie ingeschakeld in de web.config. De authenticatiemethode is Windows

-->uit web.config
------------------------
<authentication mode="Windows" />

<authorization>
<allow users="*" />
</authorization>

<identity impersonate="true"/>

------------------------

Als ik die file probeer weg te schrijven door de site lokaal op te ropen (http://localhost...) werkt alles prima. Het probleem doet zich voor wanneer van een andere pc (de host pc in vmware) de aspx-pagina wordt opgeroepen.

Het debuggen leerde mij dat:
----->bij lokaal aanmelden
(aangemeld met emea\smetst)
->geen exceptions
->System.Security.Principal.WindowsIdentity.GetCurrent.Name = EMEA\smets
----->vanaf andere pc
(aangemeld met emea\smetst)
->exception
System.UnauthorizedAccessException: Access to the path "\\server\map$\Alarms\127583008006896866.emc" is denied.
->System.Security.Principal.WindowsIdentity.GetCurrent.Name = EMEA\SmetsT

Het valt mij op dat de ene keer de naam smetst is en de andere SmetsT. Ik heb geen enkel idee waaraan dat kan liggen. Ik heb ook rechten op die share. Iedereen in \\emea heeft schrijfrechten en leesrechten. En aangezien ik in beide gevallen aangelogd ben als emea\smetst zou daar eigenlijk geen verschil in mogen zitten.

Kan iemand mij zeggen wat ik over het hoofd zie? Zijn er nog andere dingen waar ik rekening mee moet houden? sysem.security.principal.windowsidentity.getcurrent.name vertelt mij toch onder welke user alles wordt uitgevoerd door aspNet?

edit:

op een andere pagina zoek ik naar gegevens in Active Directory (waarvoor je ook ingelogd moet zijn op dat domein) en dat werkt wel de volle 100%.


Mvg

Thomas

[ Voor 15% gewijzigd door Verwijderd op 18-04-2005 17:10 ]


Verwijderd

Topicstarter
Heb ondertussen gevonden dat het niets met impersonatie te maken heeft maar wel met delegatie. Delegatie (omdat het naar een andere server is) gebeurt automatisch indien er aan een aantal voorwaarden is voldaan. Een daarvan is Kerberos. Dat was niet mogelijk.

Daarom heb ik het nu opgelost om anonieme authenticatie toe te staan en de standaar iisusr_<compnaam> te vervangen door een domeingebruiker. Maar in elke aspx-pagina wel een controle gedaan of de gebruiker geautenticeerd is. Dat was gemakkelijk te doen omdat mijn aspx-pagina's allemaal overerven van een logonEnabled klasse, en ik dus maar 1 klasse moest wijzigen.

Wie meer info nodig heeft:
http://msdn.microsoft.com...ml/vxconImpersonation.asp