Benutzer mit den meisten Antworten
Zugriff auf web.config

Frage
-
Hi,In einem Eventhandler wird mittels ConfigurationManager auf dieWeb.config zugegriffen. Dies funktioniert allerdings nicht für alleBenutzer, sondern nur wenn sich einmal ein Admin angemeldet hat.Anschließend funktionieren alle weiteren Zugriffe ohne Probleme.Das Problem ist soweit logisch - nur der Admin hat zugriff auf dieweb.config alle anderen nicht. Da nur beim ersten Zugriff physisch aufdie web.config zugegriffen wird funktionieren alle weiteren Zugriffeauch von anderen Benutzern - solange bis der App-Pool recycled wird.Frage: wie gestalte ich den Zugriff, damit auch andere, nicht-Admins"als erste" zugreifen dürfen?--Henning Eibenbusitec GmbHConsultantRudolf-Diesel-Straße 5948157 Münsterwww.busitec.deSitz der Gesellschaft: MünsterHR B 55 75 - Amtsgericht MünsterUSt-IdNr. DE 204607833 - St.Nr. 336/5704/1277Geschäftsführer: Henning Eiben, Martin Saalmann, Simon Schwingel
Antworten
-
On 03.02.2011 10:44, Andrei Talmaciu wrote:>> In meiner Testumgebung (und deren meiner Kollegen) genau anders rum> (Server 2008 R2 Enterprise + SharePoint Server 2010). Für alle> web.config Dateien (genauer gesagt für alle von SharePoint> angelegten IIS Sites) erhält Jeder Leserechte. Ich konnte leider keine> Dokumentation zu den standardmäßigen IIS-Rechte die SharePoint anlegt> finden.>> Konntest Du inzwischen die Ursache bestätigen? Falls ja, können wir> den Thread somit schließen?>Ich habe das nun so gelöst, dass ich mit einer Singleton-Instance aufdie Web-Config zugreife und dafür dann einmalig elevate.--Henning Eibenbusitec GmbHConsultantRudolf-Diesel-Straße 5948157 Münsterwww.busitec.deSitz der Gesellschaft: MünsterHR B 55 75 - Amtsgericht MünsterUSt-IdNr. DE 204607833 - St.Nr. 336/5704/1277Geschäftsführer: Henning Eiben, Martin Saalmann, Simon Schwingel
- Als Antwort markiert Andrei Talmaciu Dienstag, 8. Februar 2011 13:48
Alle Antworten
-
Hallo Henning
wäre es möglich/für die Funktionalität anwendbar den ConfigurationManager Code mit erweiterten Rechten auszuführen?
http://msdn.microsoft.com/de-de/library/aa543467.aspx
Gruß
Andrei -
On 25.01.2011 14:02, Andrei Talmaciu wrote:>> wäre es möglich/für die Funktionalität anwendbar den> ConfigurationManager Code mit erweiterten Rechten auszuführen?>>Daran habe ich auch schon gedacht. Aber wenn ich alleConfigurationManager-Aufrufe in ein RunWithElevatedPrivileges wickel,dann bekomme ich ja recht viele Context-Wechsel. Eigentlich muss ja nurinnerhalb des ConfigurationManager der einmalige Zugriff auf dieweb.config elevated erfolgen.--Henning Eibenbusitec GmbHConsultantRudolf-Diesel-Straße 5948157 Münsterwww.busitec.deSitz der Gesellschaft: MünsterHR B 55 75 - Amtsgericht MünsterUSt-IdNr. DE 204607833 - St.Nr. 336/5704/1277Geschäftsführer: Henning Eiben, Martin Saalmann, Simon Schwingel
-
Wofür wird den die Web.config genau benutzt? Für Anwendungseinstellungen?
Ich frage, da es auch andere Plätze gibt in dem man solche Einstellungen speichern könnte wobei auch normale User Zugriff erhalten. Ich habe z.B. mit SPWeb.Properties gearbeitet und der User konnte auf die darin enthaltenen Werte zugreifen.
Evtl. hilfreich: http://www.wictorwilen.se/Post/Six-ways-to-store-settings-in-SharePoint.aspx
Hilft das?
Gruß
Andrei -
On 26.01.2011 12:53, Andrei Talmaciu wrote:
Wofür wird den die Web.config genau benutzt? Für Anwendungseinstellungen?
Ich frage, da es auch andere Plätze gibt in dem man solche Einstellungen speichern könnte wobei auch normale User Zugriff erhalten. Ich habe z.B. mit SPWeb.Properties gearbeitet und der User konnte auf die darin enthaltenen Werte zugreifen.
Evtl. hilfreich: http://www.wictorwilen.se/Post/Six-ways-to-store-settings-in-SharePoint.aspx
Die Frage ist berechtigt. In der Tat verwende ich in dem Projekt auch mehrere Speicherorte. Die web.config enthält dabei Default-Werte, die bei der Installation geschrieben werden (das ist in meinem aktuelle Projekt "legacy"-Code von einem anderen Entwickler, den ich nicht anpassen kann/will). Alle Werte können aber auch durch eine SharePoint-Liste übersteuert werden. Wenn allerdings für eine Einstellung kein Eintrag in der Liste gefunden wird, dann wird ein Zugriff auf die Web.config gemacht (und wenn da nix drin steht wird ein fest im Code hinterlegter Wert genommen).
-- Henning Eiben busitec GmbH Consultant Rudolf-Diesel-Straße 59 48157 Münster www.busitec.de Sitz der Gesellschaft: Münster HR B 55 75 - Amtsgericht Münster USt-IdNr. DE 204607833 - St.Nr. 336/5704/1277 Geschäftsführer: Henning Eiben, Martin Saalmann, Simon Schwingel
-
ok. Ich habe testhalber ein WebPart aufgestellt der einen Standardwert aus der web.config aufruft.
Label1.Text = ConfigurationManager.AppSettings["FeedCacheTime"];
Nach einem iisreset, mit einem herkömlichen User (Member der AD Domain Users Gruppe und der SharePoint Members Gruppe) darauf zugegriffen und den Wert angezeigt bekommen. Daher würde es sich also nicht als Standardverhalten einstuffen lassen.
Wäre interessenat zu erfahren was im ULS Log zum Zeitpunkt des Aufrufs protokolliert wird. Evtl. kommen wir der Ursache auf diese Art näher.
-
On 26.01.2011 14:33, Andrei Talmaciu wrote:
ok. Ich habe testhalber ein WebPart aufgestellt der einen Standardwert aus der web.config aufruft.
Label1.Text = ConfigurationManager.AppSettings["FeedCacheTime"];
Nach einem iisreset, mit einem herkömlichen User (Member der AD Domain Users Gruppe und der SharePoint Members Gruppe) darauf zugegriffen und den Wert angezeigt bekommen. Daher würde es sich also nicht als Standardverhalten einstuffen lassen.
Wäre interessenat zu erfahren was im ULS Log zum Zeitpunkt des Aufrufs protokolliert wird. Evtl. kommen wir der Ursache auf diese Art näher.
--- cut ---
Application error when access /_layouts/foo/MyCustomDispForm.aspx, Error=Access to the path 'C:\inetpub\wwwroot\wss\VirtualDirectories\6003\web.config' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.Configuration.Internal.InternalConfigHost.StaticOpenStreamForRead(String streamName)
at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.OpenStreamForRead(String streamName, Boolean assertPermissions)
at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.OpenStreamForRead(String streamName)
at System.Configuration.Internal.DelegatingConfigHost.OpenStreamForRead(String streamName)
at System.Configuration.UpdateConfigHost.OpenStreamForRead(String streamName)
at System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
--- cut ---
hmm, und nun?
-- Henning Eiben busitec GmbH Consultant Rudolf-Diesel-Straße 59 48157 Münster www.busitec.de Sitz der Gesellschaft: Münster HR B 55 75 - Amtsgericht Münster USt-IdNr. DE 204607833 - St.Nr. 336/5704/1277 Geschäftsführer: Henning Eiben, Martin Saalmann, Simon Schwingel
-
--- cut ---
Application error when access /_layouts/foo/MyCustomDispForm.aspx, Error=Access to the path 'C:\inetpub\wwwroot\wss\VirtualDirectories\6003\web.config' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.Configuration.Internal.InternalConfigHost.StaticOpenStreamForRead(String streamName)
at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.OpenStreamForRead(String streamName, Boolean assertPermissions)
at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.OpenStreamForRead(String streamName)
at System.Configuration.Internal.DelegatingConfigHost.OpenStreamForRead(String streamName)
at System.Configuration.UpdateConfigHost.OpenStreamForRead(String streamName)
at System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
--- cut ---
wir wissen jetzt dass es sich um eine NTFS Berechtigungsproblem handelt. Wie sehen Dateiberechtigungen für die web.config aus? Standardmäßig sollte jeder über Read Rechte verfügen.
Letztendlich könnte ein Procmon Trace den Benutzer und die angefordeten Rechte/Operation für die web.config Datei ins Licht bringen.
Gruß
Andrei -
On 03.02.2011 08:32, Andrei Talmaciu wrote:
wir wissen jetzt dass es sich um eine NTFS Berechtigungsproblem handelt. Wie sehen Dateiberechtigungen für die web.config aus? Standardmäßig sollte jeder über Read Rechte verfügen.
Letztendlich könnte ein Procmon Trace den Benutzer und die angefordeten Rechte/Operation für die web.config Datei ins Licht bringen.
Das mit dem NTFS hatte ich die ganze Zeit schon in verdacht. Ist es denn wirklich so, dass wenn ich einen neuen Server mit SharePoint installiere, dass dann wirklich "Jeder" lesenden Zugriff auf die web.config hat? Auf meiner Maschine haben nur System, WSS_ADMIN_WPG und WSS_WPG sowie die lokale Administratoren-Gruppe Zugriff auf die Datei. Und ich kann mich nicht erinnern, dass ich da etwas besonderes eingestellt hatte. Somit würde ich sagen, haben Default-mäßig normale Benutzer keinen Zugriff auf die web.config.
-- Henning Eiben busitec GmbH Consultant Rudolf-Diesel-Straße 59 48157 Münster www.busitec.de Sitz der Gesellschaft: Münster HR B 55 75 - Amtsgericht Münster USt-IdNr. DE 204607833 - St.Nr. 336/5704/1277 Geschäftsführer: Henning Eiben, Martin Saalmann, Simon Schwingel
-
In meiner Testumgebung (und deren meiner Kollegen) genau anders rum (Server 2008 R2 Enterprise + SharePoint Server 2010). Für alle web.config Dateien (genauer gesagt für alle von SharePoint angelegten IIS Sites) erhält Jeder Leserechte. Ich konnte leider keine Dokumentation zu den standardmäßigen IIS-Rechte die SharePoint anlegt finden.
Konntest Du inzwischen die Ursache bestätigen? Falls ja, können wir den Thread somit schließen?
Gruß
Andrei -
On 03.02.2011 10:44, Andrei Talmaciu wrote:>> In meiner Testumgebung (und deren meiner Kollegen) genau anders rum> (Server 2008 R2 Enterprise + SharePoint Server 2010). Für alle> web.config Dateien (genauer gesagt für alle von SharePoint> angelegten IIS Sites) erhält Jeder Leserechte. Ich konnte leider keine> Dokumentation zu den standardmäßigen IIS-Rechte die SharePoint anlegt> finden.>> Konntest Du inzwischen die Ursache bestätigen? Falls ja, können wir> den Thread somit schließen?>Ich habe das nun so gelöst, dass ich mit einer Singleton-Instance aufdie Web-Config zugreife und dafür dann einmalig elevate.--Henning Eibenbusitec GmbHConsultantRudolf-Diesel-Straße 5948157 Münsterwww.busitec.deSitz der Gesellschaft: MünsterHR B 55 75 - Amtsgericht MünsterUSt-IdNr. DE 204607833 - St.Nr. 336/5704/1277Geschäftsführer: Henning Eiben, Martin Saalmann, Simon Schwingel
- Als Antwort markiert Andrei Talmaciu Dienstag, 8. Februar 2011 13:48