Hallo zusammen,
ich schreibe eine kleine Intranet-HP mit ASP.NET (VB) und habe eine Zugriffsverweigerung bei einem Zugriff mit System.IO.Directory.GetDirectories(Path) oder System.IO.Directory.GetFiles(Path) auf einen UNC-Pfad bzw. DFSR Pfad.
meine web.config:
<system.web>
<compilation debug="true" />
<customErrors mode="Off" />
<identity impersonate="true" />
<globalization responseEncoding="utf-8" responseHeaderEncoding="utf-8" requestEncoding="utf-8" culture="de-DE" uiCulture="de-DE" />
<authentication mode="Windows">
</authentication>
<authorization>
<allow users="*" />
<deny users="?" />
</authorization>
</system.web>
In meiner Hauptseite die ich lade soll ein Verzeichnis-Stamm angezeigt werden: In der WebBase Class wird dann GetDirectories auf gerufen um ein Verzeichnis aufzulisten.
<% @ Page Language="VB" CodeFile="WebBase.aspx.vb" Inherits="WebBase" %>
<script runat="server">
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles myBase.Load
Dim P As String = Request.QueryString("p")
Dim WebBase As New WebBase
Dim impersonationContext As System.Security.Principal.WindowsImpersonationContext
Dim currentWindowsIdentity As System.Security.Principal.WindowsIdentity
currentWindowsIdentity = CType(User.Identity, System.Security.Principal.WindowsIdentity)
impersonationContext = currentWindowsIdentity.Impersonate()
WebBase.LoadPath(p)
impersonationContext.Undo()
End Sub
</script>
Der angemeldete User wird zu Beginn des Verzeichnis-Lade Threads korrekt angezeigt mit System.Security.Principal.WindowsIdentity.GetCurrent().Name
Der User hat Vollzugriff auf den UNC bzw- DFSR Path.
kommt jedoch GetDirectories() oder GetFiles() erhalte ich eine Ausnahmedetails: System.UnauthorizedAccessException: Der Zugriff auf den Pfad "\\[PIEEEP]" wurde verweigert.
Hat jemand ne Idee?