Gaaanz oft höre ich, auf meiner lokalen Maschine geht alles und wenn ich das Projekt auf den Webserver kopiere dann fehlen die Rechte.
Für den speziellen Fall einer Intranet Anwendung möchte ich das kurz klären. Wenn man mit Visual Studio (2005 / 2008) eine Website oder ein Webprojekt erzeugt wird immer das Projekt mit dem Web Dev Server gestartet. Dieser erscheint als Icon rechts unten und läuft auf einem zufälligen Port in der form http://localhost:12121/anwendung.aspx. Dabei wird der “kleine” Webserver immer mit den Rechten des aktuellen Benutzers = Developer gestartet. Die meisten Developer (ja ich auch) arbeiten mit Admin Rechten. Also darf die so erstellte Anwendung alles (zb Filezugriff).
Wenn man die Anwendung auf einen IIS kopiert und nichts besonderes konfiguriert läuft jeder Zugriff anonym. Der anonyme Benutzer wird dann je nach Umgebung mit dem IUSR_machinenename oder dem im Application Pool konfigurierten Benutzer ( zb Network Service).
Wenn man nun möchte das eine automatischen Anmeldung erzwungen wird reicht in der Web.Config folgender Eintrag. Das ? bewirkt das anonyme Benutzer nicht zugelassen werden.
<
authentication mode="Windows"> </
authentication> <
authorization> <
deny users="?"/> </
authorization> Schon kann man per user.identity.name auf den angemeldeten Benutzer zugreifen.