Oppure

Loading
04/10/10 16:26
Iohoilpotere
Salve, in primo luogo mi scuso se ho aperto nella sezione sbagliata (.NET World mi sembrava adatto all'ASP.NET :D). Ho un problema con i livelli di sicurezza (trust level). Ho creato una chat (nulla di eccezionale, progetto veloce) che in locale funziona perfettamente, ma, se hostata (ho register) mi da dei problemi. Questo è l'errore che mi ritorna:

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.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Questo è il codice:
<%@ Import Namespace="System.IO" %>
<script runat="server">
    Private Sub inser_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim objStreamWriter As StreamWriter
        objStreamWriter = File.AppendText("Text.txt")
        objStreamWriter.WriteLine(Date.Now.Hour & ":" & Date.Now.Minute & ":" & Date.Now.Second & "User:" & Casella.Text)
        objStreamWriter.Close()
        Casella.Text = ""
    End Sub
</script>


"Casella" è una textbox
"Text" è una textbox

Sostanzialmente una semplicissima scrittura su file di testo, che mi viene bloccata. Qualcuno saprebbe indicarmi qualcosa per risolvere il problema? (temo di dover modificare il codice dato che le impostazioni non credo di averle a mia disposizione).

P.S: nella lettura del file non c'è (ovviamente) nessun problema.
Ultima modifica effettuata da Iohoilpotere 04/10/10 16:27
aaa
04/10/10 16:46
netarrow
Questi permessi sono impostati a livello di code access security (cas).
In normali applicazioni .net gli assembly vengono configurati tramite il comando caspol (msdn.microsoft.com/en-us/library/…) o tramite il .NET Configuration Tool (mscorcfg.msc, nella folder del .NET SDK).

Cercando qualcosa su come applicare a asp.net CAS ho trovato questo: msdn.microsoft.com/en-us/library/…

Dovrebbe fuzionare così anche in asp.net 3.5; se usi asp.net 4.0 non si saprei aiutare visto che non l'ho ancora usato e, da quel che ho visto, CAS non c'è più in questa versione.
aaa
04/10/10 17:15
Iohoilpotere
Uhm, ho letto e seguito le istruzioni, ma mi ritorna errore:
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: This configuration section cannot be used at this path. This happens when the site administrator has locked access to this section using <location allowOverride="false"> from an inherited configuration file.


quando tento di modificare il web.config...
aaa
04/10/10 17:29
netarrow
Evidentemente il web hoster ha lockato la modifica di alcune parti del web.config.

A questo punto se non puoi effettivamente modificare i permissionSet dovresti chiedere a chi hosta il tuo sito qual è un path, se c'è, dove hai i diritti di scrittura.

Di solito una cartella utente dove puoi scriverci dentro dovrebbe esserci.
Una volta trovata la cartella, assicurati di accedere alla cartella dove scrivi tramite path fisico con MapPath: msdn.microsoft.com/it-it/library/…(v=VS.90).aspx
aaa
04/10/10 18:14
Iohoilpotere
Sono curioso di sapere adesso register cosa mi dice <<
aaa
04/10/10 19:24
Iohoilpotere
la cosa inizia a farsi comica, ho provato a rimuovere web.config e non da errori, se invece ci aggiungo la stringa

<trust level="Full" originUrl="" />

mi ritorna l'errore... ho come l'impressione che qualcosa mi sfugga <<
aaa
04/10/10 19:32
netarrow
Ti riferisci al secondo errore?
Il secondo errore sorge quando imposti nel web.config una property già definita ad un livello superiore dove l'override non è permesso, cioè impedisce ad altri web.config di sovrascrivere le opzioni.

Postaci qui eventualmente il tuo web.config
aaa
04/10/10 19:50
Iohoilpotere
<?xml version="1.0"?>
<configuration>
	<configSections>
		<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
			<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
				<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
				<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
					<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
					<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
					<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
					<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
				</sectionGroup>
			</sectionGroup>
		</sectionGroup>
	</configSections>
	<appSettings/>
	<connectionStrings/>
	<system.web>
		<!-- 
            Impostare compilation debug="true" per inserire i 
            simboli di debug nella pagina compilata. Poiché tale operazione ha effetto 
            sulle prestazioni, impostare questo valore su true 
            solo durante lo sviluppo.

            Opzioni di Visual Basic:
            Impostare strict="true" per impedire qualsiasi conversione di tipi di dati 
            in caso di possibile perdita di dati. 
            Impostare explicit="true" per imporre la dichiarazione di tutte le variabili.
        -->
		<compilation debug="false" strict="false" explicit="true">
			<assemblies>
				<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
				<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
				<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
				<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
			</assemblies>
		</compilation>
		<pages>
			<namespaces>
				<clear/>
				<add namespace="System"/>
				<add namespace="System.Collections"/>
				<add namespace="System.Collections.Generic"/>
				<add namespace="System.Collections.Specialized"/>
				<add namespace="System.Configuration"/>
				<add namespace="System.Text"/>
				<add namespace="System.Text.RegularExpressions"/>
				<add namespace="System.Linq"/>
				<add namespace="System.Xml.Linq"/>
				<add namespace="System.Web"/>
				<add namespace="System.Web.Caching"/>
				<add namespace="System.Web.SessionState"/>
				<add namespace="System.Web.Security"/>
				<add namespace="System.Web.Profile"/>
				<add namespace="System.Web.UI"/>
				<add namespace="System.Web.UI.WebControls"/>
				<add namespace="System.Web.UI.WebControls.WebParts"/>
				<add namespace="System.Web.UI.HtmlControls"/>
			</namespaces>
			<controls>
				<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
				<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			</controls>
		</pages>
		<!--
            La sezione <authentication> consente di configurare 
            la modalità di autenticazione della sicurezza utilizzata da 
            ASP.NET per identificare un utente in ingresso. 
        -->
		<authentication mode="Windows"/>
    <customErrors mode="Off"/>

    <!--
            La sezione <customErrors> consente di configurare 
            l'operazione da eseguire in caso di errore non gestito 
            durante l'esecuzione di una richiesta. In particolare, 
            consente agli sviluppatori di configurare le pagine di errore HTML 
            in modo che vengano visualizzate al posto dell'analisi dello stack dell'errore.

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
		<httpHandlers>
			<remove verb="*" path="*.asmx"/>
			<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
		</httpHandlers>
		<httpModules>
			<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
		</httpModules>
	</system.web>
	<system.codedom>
		<compilers>
			<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
				<providerOption name="CompilerVersion" value="v3.5"/>
				<providerOption name="OptionInfer" value="true"/>
				<providerOption name="WarnAsError" value="false"/>
			</compiler>
		</compilers>
	</system.codedom>
	<!-- 
        La sezione system.webServer è richiesta per eseguire ASP.NET AJAX in Internet
       Information Services 7.0. Non è necessaria per la versione precedente di IIS.
    -->
	<system.webServer>
		<validation validateIntegratedModeConfiguration="false"/>
		<modules>
			<remove name="ScriptModule"/>
			<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
		</modules>
		<handlers>
			<remove name="WebServiceHandlerFactory-Integrated"/>
			<remove name="ScriptHandlerFactory"/>
			<remove name="ScriptHandlerFactoryAppServices"/>
			<remove name="ScriptResource"/>
			<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
			<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
		</handlers>
	</system.webServer>
	<runtime>
		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
			<dependentAssembly>
				<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
			</dependentAssembly>
			<dependentAssembly>
				<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
			</dependentAssembly>
		</assemblyBinding>
	</runtime>
</configuration>


Tutto autocompilato, io non ho mai visto questa roba prima di ieri...
aaa