none
WebPart error System.Net.WebPermission RRS feed

  • Pergunta

  • Boa Tarde,

    Criei um WebPart no Visual Studio 2010 e fiz o deploy no SharePoint 2010 Foundation. Essa WebPart simplesmente cria um objeto WebRequest. Porém ocorre o erro descrito abaixo.

    O mais intrigante é que já tentei várias coisas, como por exemplo alterar o trust level para "Full", adicionei no arquivo da solução do VSTDIO "Package.Template.xml" o elemento "CodeAccessSecurity" e não obtive êxito.

    Se alguém tuver alguma dica, agradeço.

    Código:

    string myUrl = "http://localhost/";
    
    WebRequest req = WebRequest.CreateDefault(new Uri(myUrl));
    
    

    Package.Template.xml:

    <CodeAccessSecurity>
     <PolicyItem>
     <PermissionSet class="NamedPermissionSet" version="1">
     <IPermission class="SecurityPermission" version="1" Flags="Execution" />
     <IPermission class="AspNetHostingPermission" version="1" Level="Minimal" />
     <IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" ObjectModel="True" />
     <IPermission class="System.Net.WebPermission" version="1" Unrestricted="true" Connections="true">
      <ConnectAccess>
      <URI uri="https?://.*" />
      </ConnectAccess>
     </IPermission>
     </PermissionSet>
     <Assemblies>
     <Assembly Name="$SharePoint.Project.AssemblyName$" Version="$SharePoint.Project.AssemblyVersion$" PublicKeyBlob="$SharePoint.Project.AssemblyPublicKeyBlob$" />
     </Assemblies>
     </PolicyItem>
     </CodeAccessSecurity>
    

    Detalhes do erro:

    System.Security.SecurityException was unhandled by user code
      Message=Request for the permission of type 'System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
      Source=mscorlib
      StackTrace:
           at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
           at System.Security.CodeAccessPermission.Demand()
           at System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint)
           at System.Net.HttpRequestCreator.Create(Uri Uri)
           at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase)
           at T_eb3b9401_ef1a_4230_a71c_b8e97d808caa.CreateInstance()
           at System.Web.HttpRuntime.FastCreatePublicInstance(Type type)
           at System.Web.UI.WebControls.WebParts.WebPartManager.ImportWebPart(XmlReader reader, String& errorMessage)
      InnerException:

     Des de já agradeço,

    Giovani Decusati

    quarta-feira, 17 de novembro de 2010 20:22

Respostas

  • Bem,

    Adicionei o atributo na WebPart(Classe) e funcionou.

    [PermissionSet(SecurityAction.Assert, Unrestricted = true)]
    

    Att,

    Giovani Decusati

    • Marcado como Resposta Giovani Decusati quinta-feira, 18 de novembro de 2010 14:50
    quinta-feira, 18 de novembro de 2010 14:50

Todas as Respostas

  • Bem,

    Adicionei o atributo na WebPart(Classe) e funcionou.

    [PermissionSet(SecurityAction.Assert, Unrestricted = true)]
    

    Att,

    Giovani Decusati

    • Marcado como Resposta Giovani Decusati quinta-feira, 18 de novembro de 2010 14:50
    quinta-feira, 18 de novembro de 2010 14:50
  • Só mais um detalhe, se utilizar SSL é necessário importar para dentro da "Central Admin -> Security -> Trust" o certificado da CA.

    Abraços,

     

    Giovani Decusati

    quinta-feira, 18 de novembro de 2010 19:33