Question

I'm trying to read the web.config for a web app from the code-behind DLL of an aspx page. However, all I'm getting back to the browser is 403 Forbidden.

First I was trying this deploying the DLL to the web app's bin folder. To begin with, I got a FileIOPermission exception. I was able to get around this by adding a FileIOPermission attribute to the class in the aspx.cs. However, with that solved, all I get now is 403 Forbidden. I am testing this whilst logged in as the site administrator.

The code I'm using is:

SPWeb spWeb = SPContext.Current.Web;
SPWebApplication webApp = spWeb.Site.WebApplication;
Configuration config = WebConfigurationManager.OpenWebConfiguration("/", webApp.Name);

I'm using WSPBuilder and this creates the necessary Code Access Security policies for my DLL as far as I can see:

<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>

These are in a custom trust file in 12/CONFIG, which is referenced by the web app's web.config.

I also tried deploying the DLL to the GAC instead of bin, but exactly the same error - 403 Forbidden. I wonder what I'm missing?

Was it helpful?

Solution

You added the FileIOPermission exception but did you add the CAS policy rule?

Have a look at this: http://www.bluedoglimited.com/SharePointThoughts/ViewPost.aspx?ID=249

Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange
scroll top