12 messaggi dal 18 gennaio 2008
Ciao a tutti,
Ho sviluppato un sito che utilizza il server aruba con un database mysql.
Il sito è sviluppato con ASP.NET 2.0 e il web.config è impostato per utilizzare un porvider per MySQL. Ma quando utilizzo gli elementi(Login e CreateUserWizard) che adoperano questo provider, la quale dll e sorgenti sono stati scaricati, ho l'errore di Security Exception :
Description: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file. 

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Diagnostics.EventLogPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Ho provato ricompilando i file sorgenti mettendo sul file AssemblyInfo.cs l'AllowPartiallyTrustedCallers in questo modo:
[assembly: AllowPartiallyTrustedCallers()]

Aggiunto il riferimento sul progetto del sito, l'ho pubblicato con la relativa funzione di visual studio.

web.config:

<?xml version="1.0"?>
  <configuration>
    <appSettings/>
    <system.web>
      <pages theme="Black"/>
      <authorization>
        <allow users="?"/>
      </authorization>
      <compilation debug="true">
        <assemblies>
          <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
          <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
      </compilation>
          <customErrors mode="Off">
        <error statusCode="403" redirect="NoAccess.htm"/>
        <error statusCode="404" redirect="FileNotFound.htm"/>
      </customErrors>
         <siteMap defaultProvider="siteMapProvider" enabled="true">
        <providers>
          <clear/>
          <add name="siteMapProvider" type="Simple.Providers.MySQL.MysqlSiteMapProvider" connectionStringName="SimpleProviderConnectionString" applicationName="WebSiteArancioblu" description="MySQL site map provider" securityTrimmingEnabled="true"/>
        </providers>
      </siteMap>
      <roleManager defaultProvider="roleProvider" enabled="true" cacheRolesInCookie="false" cookieName=".ASPROLES" cookieTimeout="7200" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All">
        <providers>
          <clear/>
          <add name="roleProvider" type="Simple.Providers.MySQL.MysqlRoleProvider" connectionStringName="SimpleProviderConnectionString" applicationName="WebSiteArancioblu" description="MySQL role provider"/>
        </providers>
      </roleManager>
      <membership defaultProvider="membershipProvider" userIsOnlineTimeWindow="15">
        <providers>
          <clear/>
          <add name="membershipProvider" type="Simple.Providers.MySQL.MysqlMembershipProvider" connectionStringName="SimpleProviderConnectionString" applicationName="WebSiteArancioblu" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Clear" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" description="MySQL membership provider"/>
        </providers>
      </membership>
      <profile defaultProvider="profileProvider" automaticSaveEnabled="true">
        <providers>
          <clear/>
          <add name="profileProvider" type="Simple.Providers.MySQL.MysqlProfileProvider" connectionStringName="SimpleProviderConnectionString" applicationName="WebSiteArancioblu" description="MySQL Profile Provider"/>
        </providers>
        <properties>
          <clear/>
         </properties>
      </profile>
      <webParts>
        <personalization defaultProvider="personalizationProvider">
          <providers>
            <clear/>
            <add name="personalizationProvider" type="Simple.Providers.MySQL.MysqlPersonalizationProvider" connectionStringName="SimpleProviderConnectionString" applicationName="WebSiteArancioblu" description="MySQL Personalization Provider"/>
          </providers>
        </personalization>
      </webParts>
    </system.web>
    <system.codedom>
    </system.codedom>
    <connectionStrings>
      <add connectionString="Driver={MySQL ODBC 3.51 Driver};server=62.149.150.75;port=3306;option=3;database=Sqlxxxxx_1;uid=xxxxxx;pwd=xxxxxxx" name="SimpleProviderConnectionString" providerName="System.Data.Odbc"/>
    </connectionStrings>
      <system.webServer>
    </system.webServer>
  </configuration>

Grazie dell'attenzione
Modificato da T0nY89 il 17 settembre 2008 11.09 -
Modificato da T0nY89 il 17 settembre 2008 15.13 -
Ciao,

aruba permette l'utilizzo di assembly "firmati" (strong name) perchè ha settato le policy in medium trust.
Verifica che gli assembly siano firmati.

Fabrizio Canevali
12 messaggi dal 18 gennaio 2008
Grazie della risposta.
Come si vede se sono firmati? e se non lo sono come si firmano?
12 messaggi dal 18 gennaio 2008
Ho firmato il mio assembly (la dll del provider) utilizzando la seguente guida:
<b>Per firmare un assembly utilizzando un nuovo file di chiave</b> 

Una volta selezionato il nodo del progetto in Esplora soluzioni, scegliere Proprietà dal menu Progetto oppure fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni, quindi scegliere Proprietà.

Fare clic sulla scheda Firma in Progettazione progetti.

Selezionare la casella di controllo Firma assembly.

Specificare un nuovo file di chiave. Nell'elenco a discesa Scegli un file chiave con nome sicuro selezionare <Nuovo...>. È importante sottolineare che i nuovi file di chiave vengono sempre creati in formato pfx.

Verrà visualizzata la finestra di dialogo Finestra di dialogo Crea chiave con nome sicuro.

Nella finestra di dialogo Crea chiave con nome sicuro immettere un nome e una password per il nuovo file di chiave, quindi scegliere OK.


Poi ho pubblicato il sito facendo prima l'add della dll poi ho firmato anche gli assembly generati con un file key dalla dialog Publish.. di Visual studio.
Il risualtato non è variato !!!
Prima ho provato anche a non firmare gli assembly che produce il progetto del sito incorrendo allo stesso errrore anche nella Default.aspx.
L'errore è scomparso quando appunto ho firmato gli assembly da publish.
Ma per la dll del provider niente.Aiuto!!
Modificato da T0nY89 il 17 settembre 2008 12.38 -
Sfigatly non puoi firmare una dll di terze parti.

Fabrizio Canevali
12 messaggi dal 18 gennaio 2008
Neanche se ho i sorgenti?
Poi se proprio non posso fare niente mi consigliate un membership provider MySQL.
Ho seguito la guida di questo sito scaricando anche i relativi file:http://www.codeproject.com/KB/webforms/MySQLsuite.aspx
T0nY89 ha scritto:
Neanche se ho i sorgenti?
Poi se proprio non posso fare niente mi consigliate un membership provider MySQL.
Ho seguito la guida di questo sito scaricando anche i relativi file:http://www.codeproject.com/KB/webforms/MySQLsuite.aspx

Se hai i sorgenti ovviamente si.

Fabrizio Canevali
12 messaggi dal 18 gennaio 2008
Firmando non sono riuscito a risolvere il problema.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.