Précédent   Forum du club des développeurs et IT Pro > Dotnet > Général Dotnet > Framework .NET
Framework .NET Vos questions relatives à l'utilisation des différents Framework .NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/04/2007, 10h55   #1
cinemania
Membre Expert
 
Sylvain Benoit
Inscription : juillet 2006
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Sylvain Benoit
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : juillet 2006
Messages : 1 103
Points : 1 468
Points : 1 468
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.
cinemania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 13h15   #2
abelman
Rédacteur
 
Avatar de abelman
 
Inscription : février 2003
Messages : 1 108
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 1 108
Points : 2 994
Points : 2 994
Bonjour,

Quels sont le type et le message de l'exception?
__________________
Les règles, Mode d'emploi
FAQS, Rechercher
.NET, C++
abelman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 13h44   #3
cinemania
Membre Expert
 
Sylvain Benoit
Inscription : juillet 2006
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Sylvain Benoit
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : juillet 2006
Messages : 1 103
Points : 1 468
Points : 1 468
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 :
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
cinemania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 14h06   #4
abelman
Rédacteur
 
Avatar de abelman
 
Inscription : février 2003
Messages : 1 108
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 1 108
Points : 2 994
Points : 2 994
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)
__________________
Les règles, Mode d'emploi
FAQS, Rechercher
.NET, C++
abelman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2009, 10h58   #5
cyrano_de_bergerac
Membre régulier
 
Inscription : mars 2007
Messages : 324
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 324
Points : 85
Points : 85
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?
cyrano_de_bergerac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2010, 16h00   #6
hotsizzle
Membre éprouvé
 
Homme Ludovic FRANTZ
Développeur informatique
Inscription : septembre 2008
Messages : 335
Détails du profil
Informations personnelles :
Nom : Homme Ludovic FRANTZ
Âge : 26
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : septembre 2008
Messages : 335
Points : 436
Points : 436
Envoyer un message via MSN à hotsizzle
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 -_-
hotsizzle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2012, 12h20   #7
mighnion
Invité régulier
 
Inscription : janvier 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 5
Points : 6
Points : 6
Bonjour,

Je fait une réponse à cet ancien post car je viens de résoudre le problème à l'instant. Autant que cela soit utile pour d'autres.

Donc la configuration ce fait sur le poste (panneau de configuration > outil d'administration> configuration framework 2.0) ou est installé Visual studio. Il faut avoir installé le SDK du framework pour visualiser l’accès dans le panneau de configuration.

Puis après comme dit "cyrano_de_bergerac", Il faut aller dans Code Access Policy et Increase Assembly trust (Faire confiance à un Assembly). Ou plus simplement, aller dans la stratégie de sécurité > ordinateur > Groupes de codes > ALL_code , et mettre le jeu d'autorisation à "full trust".

J'espère que cela vous a aidé un peu. En cherchant sur le net correctement vous trouverais un tuto plus détaillé surement.

Cordialement.
mighnion est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/09/2012, 12h34   #8
Sankasssss
Modérateur
 
Avatar de Sankasssss
 
Homme Gaëtan Wauthy
Développeur .NET
Inscription : novembre 2006
Messages : 1 363
Détails du profil
Informations personnelles :
Nom : Homme Gaëtan Wauthy
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2006
Messages : 1 363
Points : 3 224
Points : 3 224

Et en ligne de commande ça donne :
Code cmd :
1
2
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
caspol -q -m -ag 1.2 -zone Intranet FullTrust -n My_Zone
A faire en administrateur.
__________________
Règles du forum + Comment utiliser Developpez.com =
Si vous développez en .NET, la FAQ, les tutos et l'aide MSDN sont vos amis !!!
LINQ c'est puissant...
Sankasssss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h22.


 
 
 
 
Partenaires

Hébergement Web