IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Framework .NET Discussion :

Problème de sécurité


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut Problème de sécurité
    Bonjour,

    Mon problème est assez complexe, aussi j'aurais besoin de votre aide pour comprendre l'origine et surtout comment contrer ce souci.

    Je dispose d'une application composée d'un executable qui charge une assembly dans lequel tous mes traitements à la base de données MSSQL sont effectués.

    Lorsque j'exécute l'application sur la machine où elle est installée, pas de problème, tout fonctionne pour le mieux.

    Cependant pour des raisons technique je partage dans le réseau intranet le répertoire avec l'application. Cette application devant pouvoir etre exécuté à distance par les personne qui ont accès à ce repertoire sans pour autant devoir l'installer chez eux.
    Le problème arrive si j'exécute l'application par le réseau, depuis un poste client autorisé. J'ai une levée d'exception de sécurité lorsque je lance une requête (DataAdapter.Fill(DataSet)) au niveau de la base de données.
    Ce qui est étrange, c'est que la base n'applique pas de règle de sécurité particulière, et que je désactive la connexion sécurisée et utilise une authentification SQL qui d'ailleurs est correcte.

    Donc voila si quelqu'un à une idée et surtout peut me dire comment règler ces sécurités, ca m'aiderais pas mal

    Merci par avance.

    Cordialement.

  2. #2
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Bonjour,

    Quels sont le type et le message de l'exception?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    Je pense que le mieux c'est encore de te donner le traçage complet de l'erreur tel que renvoyé par le CLR.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
     
    Exception non gérée*: System.Security.SecurityException: Échec de la demande d'a
    utorisation de type 'System.Data.SqlClient.SqlClientPermission, System.Data, Ver
    sion=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
       à System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMar
    k& stackMark, Boolean isPermSet)
       à System.Security.PermissionSet.Demand()
       à System.Data.Common.DbConnectionOptions.DemandPermission()
       à System.Data.SqlClient.SqlConnection.PermissionDemand()
       à System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection ou
    terConnection)
       à System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection out
    erConnection, DbConnectionFactory connectionFactory)
       à System.Data.SqlClient.SqlConnection.Open()
       à System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[]
    datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand com
    mand, CommandBehavior behavior)
       à System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, I
    nt32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       à System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
       à RTWSEngine.Databases.Database.fetchResult(DbCommand query)
       à RTWSEngine.Security.PrepareLicences()
       à RTWSEngine.EntryPoint.StartRTWS(WebDescriptor wdRTWS, Boolean web, String[]
     args)
       à Rtws_CGI.Program.Main(String[] args)
    L'action qui a échoué était*:
    Demand
    Le type de la première autorisation qui a échoué était*:
    System.Data.SqlClient.SqlClientPermission
    La première autorisation qui a échoué était*:
    <IPermission class="System.Data.SqlClient.SqlClientPermission, System.Data, Vers
    ion=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    AllowBlankPassword="False">
    <add ConnectionString="Data Source=tcp:SRV-DEVFMS;integrated Security=False;Init
    ial Catalog=rtws_report;User ID=rtws_report;password=*;"
    KeyRestrictions=""
    KeyRestrictionBehavior="AllowOnly"/>
    </IPermission>
     
    La demande était pour*:
    <PermissionSet class="System.Security.PermissionSet"
    version="1">
    <IPermission class="System.Data.SqlClient.SqlClientPermission, System.Data, Vers
    ion=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    AllowBlankPassword="False">
    <add ConnectionString="Data Source=tcp:SRV-DEVFMS;integrated Security=False;Init
    ial Catalog=rtws_report;User ID=rtws_report;password=*;"
    KeyRestrictions=""
    KeyRestrictionBehavior="AllowOnly"/>
    </IPermission>
    </PermissionSet>
     
    Le jeu autorisé de l'assembly défaillant était*:
    <PermissionSet class="System.Security.PermissionSet"
    version="1">
    <IPermission class="System.Security.Permissions.EnvironmentPermission, mscorlib,
     Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    Read="USERNAME"/>
    <IPermission class="System.Security.Permissions.FileDialogPermission, mscorlib,
    Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    Unrestricted="true"/>
    <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Vers
    ion=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    Read="\\SRV-DEVFMS\RTWS-CORE\"
    PathDiscovery="\\SRV-DEVFMS\RTWS-CORE\"/>
    <IPermission class="System.Security.Permissions.IsolatedStorageFilePermission, m
    scorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    Allowed="AssemblyIsolationByUser"
    UserQuota="9223372036854775807"
    Expiry="9223372036854775807"
    Permanent="True"/>
    <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib,
    Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    Flags="ReflectionEmit"/>
    <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Ve
    rsion=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    Flags="Assertion, Execution, BindingRedirects"/>
    <IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=
    2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    Unrestricted="true"/>
    <IPermission class="System.Security.Permissions.UrlIdentityPermission, mscorlib,
     Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    Url="file://srv-devfms/rtws-core/RTWSEngine.DLL"/>
    <IPermission class="System.Security.Permissions.ZoneIdentityPermission, mscorlib
    , Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    Zone="Intranet"/>
    <IPermission class="System.Net.DnsPermission, System, Version=2.0.0.0, Culture=n
    eutral, PublicKeyToken=b77a5c561934e089"
    version="1"
    Unrestricted="true"/>
    <IPermission class="System.Drawing.Printing.PrintingPermission, System.Drawing,
    Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    version="1"
    Level="DefaultPrinting"/>
    </PermissionSet>
     
    L'assembly ou le AppDomain qui a échoué était*:
    RTWSEngine, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null
    La méthode qui a causé l'échec était*:
    RTWSEngine.Databases.ResultSet fetchResult(System.Data.Common.DbCommand)
    La zone de l'assembly qui a échoué était*:
    Intranet
    L'URL de l'assembly qui a échoué était*:
    file://srv-devfms/rtws-core/RTWSEngine.DLL

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    OK.
    Ce code (DataSet.Fill) n'a tout simplement pas le droit de s'éxecuter depuis le réseau.
    Il faut augmenter le 'niveau de confiance' de l'assembly.
    ça se fait dans Outil d'administration, .NET Framework 2.0 configuration

    Il faut aller dans Code Access Policy et Increase Assembly trust (Faire confiance à un Assembly)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 343
    Par défaut
    Citation Envoyé par abelman Voir le message
    OK.
    Ce code (DataSet.Fill) n'a tout simplement pas le droit de s'éxecuter depuis le réseau.
    Il faut augmenter le 'niveau de confiance' de l'assembly.
    ça se fait dans Outil d'administration, .NET Framework 2.0 configuration

    Il faut aller dans Code Access Policy et Increase Assembly trust (Faire confiance à un Assembly)
    Je vois pas Outil d'administration dans Visual Studio, c'est bien par ça qu'il faut passer?

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 337
    Par défaut
    Bonjour, j'ai exactement le même problème et j'aimerais savoir si la manipulation est à faire sur le poste ou l'application est installée ou sur le serveur ou se trouve la DLL.

    Car sur mon serveur il n'y a pas .NET Framework 2.0 configuration dans outils d'administration, et que sur le poste en local on me refuse l'accès pour cette dll -_-

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de sécurité avec MS Access
    Par jpduches dans le forum Sécurité
    Réponses: 2
    Dernier message: 13/12/2010, 15h44
  2. [MS SQL Server 2000] problèmes de sécurité et sauvegarde
    Par Abydos Business Group dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2006, 19h36
  3. [Sécurité] Problème de sécurité
    Par donid dans le forum Langage
    Réponses: 4
    Dernier message: 02/03/2006, 10h07
  4. Problèmes de sécurité Acces-ADO
    Par digital prophecy dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/03/2005, 21h08
  5. [Debutant] Problème de sécurité dans un applet
    Par peaceinpal dans le forum Applets
    Réponses: 3
    Dernier message: 09/09/2004, 20h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo