Podsumowanie: Jedna z naszych aplikacji internetowych wymaga dostępu do zapisu pod numerem C:\Windows\Temp
. Jednak niezależnie od tego, jak bardzo osłabię uprawnienia NTFS, procmon pokazuje ACCESS DENIED
.Usługi IIS 7.5, ASP.NET, podszywanie się i dostęp do C: Windows Temp
Tło (który może lub nie może być istotne dla problemu): Jesteśmy przy użyciu OLEDB uzyskać dostęp do bazy danych MS Access (który znajduje się poza C: \ Windows \ Temp). Niestety, ten sterownik OLEDB wymaga dostępu do zapisu do katalogu TEMP profilu użytkownika (który jest C: \ Windows \ Temp podczas działania w IIS 7.5), w przeciwnym razie zostanie wywołany przerażający "Nieokreślony błąd" Wyjątek OleDbException. Aby uzyskać szczegółowe informacje, patrz KB 926939. Postępowałem zgodnie z instrukcjami w artykule KB, ale to nie pomaga.
Szczegóły:
To wyjście icacls C:\Windows\Temp
. Do celów debugowania dałem pełne uprawnienia do Everyone
.
C:\Windows\Temp NT AUTHORITY\SYSTEM:(OI)(CI)(F)
CREATOR OWNER:(OI)(CI)(IO)(F)
BUILTIN\IIS_IUSRS:(OI)(CI)(S,RD)
BUILTIN\Users:(CI)(S,WD,AD,X)
BUILTIN\Administrators:(OI)(CI)(F)
Everyone:(OI)(CI)(F)
Jednak jest to zrzut ekranu z procmon:
Desired Access: Generic Read/Write, Delete
Disposition: Create
Options: Synchronous IO Non-Alert, Non-Directory File, Random Access, Delete On Close, Open No Recall
Attributes: NT
ShareMode: None
AllocationSize: 0
Impersonating: MYDOMAIN\myuser
PS: Po zalogowaniu się jako MYDOMAIN\myuser
, mogę tworzyć pliki w C:\Windows\Temp
użyciu Eksploratora Windows bez żadnych problemów.
EDIT: Istotne części web.config:
<authentication mode="Windows" />
<identity impersonate="true" />
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
uwierzytelniania wydaje się działać, to znaczy System.Security.Principal.WindowsIdentity.GetCurrent().Name
(co jest pokazane na mojej niestandardowej strony błędu) zwraca MYDOMAIN\myuser
.
PS: Ja też rozważyć delegowania to ServerFault zamiast, ale moje przypuszczenie byłoby, że jest to problem z tym, jak ASP.NET obsługuje personifikacji zamiast systemu Windows problem z konfiguracją. – Heinzi
Jakie są wartości dla '' i '' w pliku 'Web.config' i czy usługi IIS są skonfigurowane tak, aby zezwalać na dostęp anonimowy (nie jestem pewien czy to nadal ma zastosowanie w IIS7)? –
scherand
@scherand: Zaktualizowałem moje pytanie. Wydaje się, że IIS7.5 używa ustawień .net w.r.t. dostęp anonimowy. – Heinzi