WebConfigManager.OpenWebConfiguration 403 Forbidden
-
16-10-2019 - |
Domanda
Sto cercando di leggere il web.config per una web app dal code-behind DLL di una pagina aspx. Tuttavia, tutto quello che sto tornando al browser è 403 Forbidden
.
Per prima cosa ho stava provando questa distribuzione la DLL nella cartella bin del web app. Per cominciare, ho ottenuto un'eccezione FileIOPermission. Sono stato in grado di ottenere intorno a questo con l'aggiunta di un attributo FileIOPermission alla classe nel aspx.cs. Tuttavia, con quello risolto, tutto quello che ottiene è ora 403 Forbidden
. Sto testando questo mentre si è connessi come l'amministratore del sito.
Il codice che sto utilizzando è:
SPWeb spWeb = SPContext.Current.Web;
SPWebApplication webApp = spWeb.Site.WebApplication;
Configuration config = WebConfigurationManager.OpenWebConfiguration("/", webApp.Name);
Sto usando WSPBuilder e questo crea le necessarie politiche di protezione dall'accesso di codice per il mio DLL per quanto posso vedere:
<NamedPermissionSets>
...
<PermissionSet class="NamedPermissionSet" version="1" Description="WSPBuilder generated permissionSet" Name="mysolution.wsp-575f9c91-53d5-4a70-825b-b9a025c24427-1">
...
<IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
...
</PermissionSet>
...
</NamedPermissionSets>
Si tratta di un file fiducia personalizzato in 12 / CONFIG, che fa riferimento web.config dell'applicazione Web.
Ho provato anche la distribuzione della DLL nella GAC, invece di bin, ma esattamente lo stesso errore - 403 Forbidden
. Mi chiedo cosa mi manca?
Soluzione
È aggiunto l'eccezione FileIOPermission ma lo si aggiunge la regola dei criteri CAS?
Date un'occhiata a questo: http://www.bluedoglimited.com/SharePointThoughts/ViewPost.aspx?ID=249