none
Connexion base de données - Probleme de securité (Security Exception) RRS feed

  • Question

  •  

    Bonjour à tous,

     

    je reviens vers vous car j'ai un problème pour acceder à ma base de données.

    Je developpe mon projet en ASP .NET C# sous l'nevironnement Web Matrix.

    J'utilise un serveur hebergant SQL SERVER 2005 EXPRESS EDITION que je connecte à mon PC via un switch.

    je me connecte à ma base de données via une authentification SQL : id=sa password=mypwd

     

    Voila un bout de mon code : Dans la classe Utils.cs (classe parametrant ma connexion à une base de données)

     

    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Security.Permissions;

    namespace Savoirs.Outils
    {
      public class OutilsBDD
      {
        public static SqlDataReader GetDataReader( string sRequete )
        {
            string sParamConnexion = (string)ConfigurationManager.ConnectionStrings["ConnectString"].ConnectionString;
            SqlConnection scConnexion = new SqlConnection( sParamConnexion );
            scConnexion.Open();
            SqlCommand scCommande = new SqlCommand( sRequete, scConnexion );
            SqlDataReader sdr = scCommande.ExecuteReader( CommandBehavior.CloseConnection );
            return sdr;
        }

     }
    }

     

    Et voilà le contenu de mon Web.config :

     

    ...

    </paramètres>
      <connectionStrings>
        <add name="ConnectString" connectionString="server= adresse IP de mon serveur; Initial Catalog=Nom de ma table; user id=sa;password=mon mot de passe;database=Nom de ma table
        Integrated Security=True"
        providerName="System.Data.SqlClient" />
      </connectionStrings>

    <system.web>

        <compilation
             defaultLanguage="c#"
             debug="true"
             strict="false"
             explicit="true"
        />

      <pages>
       <namespaces>
        <clear/>
        <add namespace="System"/>
        <add namespace="System.Collections"/>
        <add namespace="System.Collections.Specialized"/>
        <add namespace="System.Configuration"/>
        <add namespace="System.Text"/>
        <add namespace="System.Text.RegularExpressions"/>
        <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"/>
                    <add namespace="Savoirs.Outils" />
       </namespaces>
      </pages>

        <customErrors
          mode="Off"
          defaultRedirect="Erreur.htm"
        >
              <error
            statusCode="404"
            redirect="Erreur404.htm"
          />
        </customErrors>

        <trace
            enabled="false"
            requestLimit="10"
            pageOutput="false"
            traceMode="SortByTime"
      localOnly="true"
        />

        <sessionState
                mode="InProc"
                stateConnectionString="tcpip=127.0.0.1:42424"            <---------------------------- ?????
                sqlConnectionString="data source=127.0.0.1;user id=sa;password="   <------- ?????
                cookieless="false"
                timeout="20"

        />
        <globalization
                requestEncoding="utf-8"
                responseEncoding="utf-8"
       />
     </system.web>

    </configuration>

     

    Voila,...

    J'ai mis deux fleches rouge au niveau de SessionState car je n'ai rien saisie à ce niveau -> c'est juste un bout de code que j'ai recupéré pour m'aider dans ma progression (Je suis encore un apprenti ASP .NET).

     

    Donc, si quelqu'un a une idée... Merci d'avance pour votre aide...

     

    Voila la page d'erreur que j'ai lorsque je compile ma page .aspx :

     

    Server Error in '/' Application.

    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.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

    Source Error:

    Line 6:  
    Line 7:      void Page_Load(Object sender, EventArgs e) {
    Line 8:        SqlDataReader sdr = OutilsBDD.GetDataReader( "SELECT code, titre, description, classe, auteur, datemodif FROM document ORDER BY datemodif DESC" );
    Line 9:        try
    Line 10:       {

    Source File: x:\Inetpub\wwwroot\SITE_COTIC\Savoirs\Documents\ListeDoc.ascx    Line: 8

    Stack Trace:

    [SecurityException: Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
       System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
       System.Security.PermissionSet.Demand() +81
       System.Data.Common.DbConnectionOptions.DemandPermission() +55
       System.Data.SqlClient.SqlConnection.PermissionDemand() +32
       System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +22
       System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +89
       System.Data.SqlClient.SqlConnection.Open() +160
       Savoirs.Outils.OutilsBDD.GetDataReader(String sRequete) +69
       ASP.documents_listedoc_ascx.Page_Load(Object sender, EventArgs e) in x:\Inetpub\wwwroot\SITE_COTIC\Savoirs\Documents\ListeDoc.ascx:8
       System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +13
       System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
       System.Web.UI.Control.OnLoad(EventArgs e) +80
       System.Web.UI.Control.LoadRecursive() +49
       System.Web.UI.Control.LoadRecursive() +132
       System.Web.UI.Control.LoadRecursive() +132
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +8003
       System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +202
       System.Web.UI.Page.ProcessRequest() +85
       System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +20
       System.Web.UI.Page.ProcessRequest(HttpContext context) +110
       ASP.test_aspx.ProcessRequest(HttpContext context) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\f950be97\6d452235\App_Web_3yoqchbf.0.cs:0
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +390
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +65
    


    Version Information: Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832


    mardi 8 juillet 2008 15:27

Réponses

Toutes les réponses