Quantcast
Channel: SharePoint 2013 - Development and Programming forum
Viewing all articles
Browse latest Browse all 25064

Code Access Security issue when accessing Applciation Page: SecurityException, "Request failed"

$
0
0
Hello!
I'm struggling a whole day with an annoying error,... But let's start from the beggining: I decided to build up an application page with code behind in an assembly deployed to the web application's "bin"'s folder. I'm using slightly modified version of WSPBuilder to automate packaging. Solution manifest looks as follows:

Code Block

<?xml version="1.0" encoding="utf-8"?>
<!-- Solution created by WSPBuilder. 2007-10-21 20:10:45  -->
<Solution xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  <FeatureManifests>
    <FeatureManifest Location="MyFeature\feature.xml" />
  </FeatureManifests>
  <Assemblies>
    <Assembly Location="Portal.GlobalResourcesFeatureReceiver.dll" DeploymentTarget="GlobalAssemblyCache">
      <SafeControls>
        <SafeControl Assembly="Portal.GlobalResourcesFeatureReceiver, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e34c2c34109ffec2" Namespace="Portal.GlobalResources" TypeName="*" Safe="True" />
      </SafeControls>
    </Assembly>
    <Assembly Location="Portal.MyFeature.dll" DeploymentTarget="WebApplication">
      <SafeControls>
        <SafeControl Assembly="Portal.MyFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="Portal.MyFeature" TypeName="*" Safe="True" />
      </SafeControls>
    </Assembly>
    <Assembly Location="Portal.MyFeatureFeatureReceiver.dll" DeploymentTarget="GlobalAssemblyCache">
      <SafeControls>
        <SafeControl Assembly="Portal.MyFeatureFeatureReceiver, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b9b2858b2722ddfc" Namespace="Portal.MyFeature" TypeName="*" Safe="True" />
      </SafeControls>
    </Assembly>
  </Assemblies>
  <TemplateFiles>
    <TemplateFile Location="LAYOUTS\MyFeature\MyFeature.aspx" />
  </TemplateFiles>
  <Resources>
    <Resource Location="MyFeature\MyFeature.resx" />
    <Resource Location="MyFeature\Resources\Resources.en.resx" />
    <Resource Location="MyFeature\Resources\Resources.resx" />
  </Resources>
  <CodeAccessSecurity>
    <PolicyItem>
      <PermissionSet class="NamedPermissionSet" version="1" Description="WSPBuilder generated permissionSet" Name="Portal.MyFeature1311f8bb-ff7c-479c-b4b4-10e68e4fc54b">
        <IPermission class="System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Level="Minimal" />
<IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="Execution" />
<IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" Unrestricted="True" />
</PermissionSet>
      <Assemblies>
        <Assembly Name="Portal.MyFeature" Version="1.0.0.0" PublicKeyBlob="" />
      </Assemblies>
    </PolicyItem>
  </CodeAccessSecurity>
</Solution>


Solution deployment as well as feature activation works fine. Now, when I'm trying to open an application page: MyFeature\MyFeature.aspx, SecurityException is thrown. I managed to get some detailed information through attached debugger:

Code Block

System.Security.SecurityException occurred
  Message="Request failed."
  Source="mscorlib"
  GrantedSet="<PermissionSet class=\"System.Security.PermissionSet\"\r\nversion=\"1\">\r\n<IPermission class=\"System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"\r\nversion=\"1\"\r\nFlags=\"Execution\"/>\r\n<IPermission class=\"System.Security.Permissions.StrongNameIdentityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"\r\nversion=\"1\"\r\nPublicKeyBlob=\"00240000048000009400000006020000002400005253413100040000010001006F73F219E1B9720F8263B741634DF013EF05EC52BEC2FA4E0D57229E3E69F6BCCB02450671AE82A6530A224CACF8CF56035FCA09D0246868E7C3BA0D3DF553666C48513552737BDF15AE7A9E85EBEF10EB9853723CC2FA4322AB2E4868F59B8B1346A33A0CB0173B2897DADE409788A32A29947B5027CCEF2891A1B953C0B4D4\"\r\nName=\"Portal.SSOGateway\"\r\nAssemblyVersion=\"1.0.0.0\"/>\r\n<IPermission class=\"System.Security.Permissions.UrlIdentityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"\r\nversion=\"1\"\r\nUrl=\"file:///G:/Inetpub/wwwroot/wss/VirtualDirectories/server80/bin/Portal.SSOGateway.DLL\"/>\r\n<IPermission class=\"System.Security.Permissions.ZoneIdentityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"\r\nversion=\"1\"\r\nZone=\"MyComputer\"/>\r\n<IPermission class=\"System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"\r\nversion=\"1\"\r\nLevel=\"Minimal\"/>\r\n<IPermission class=\"Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c\"\r\nversion=\"1\"\r\nUnrestricted=\"True\"/>\r\n<IPermission class=\"System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\"\r\nversion=\"1\"\r\nUnrestricted=\"true\"/>\r\n</PermissionSet>\r\n"
  PermissionState="<PermissionSet class=\"System.Security.PermissionSet\"\r\nversion=\"1\"\r\nUnrestricted=\"true\"/>\r\n"
  RefusedSet=""
  Url="file:///G:/Inetpub/wwwroot/wss/VirtualDirectories/server80/bin/Portal.SSOGateway.DLL"
  StackTrace:
       at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)


and what I'm seeing in a browser:

Request failed.   at System.Reflection.Assembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
   at System.Web.UI.Util.GetTypeFromAssemblies(ICollection assemblies, String typeName, Boolean ignoreCase)
   at System.Web.UI.TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError)
   at System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly)
   at System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData)


Do anone knows what really happens behind the scenes? I don't understand why and where PermissionSet(Unrestricted=True) gets called.

I appreciate any help.

Regards.




Viewing all articles
Browse latest Browse all 25064

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>