Question

Je dois dire que jusqu’à présent, j’ai probablement été très chanceux de ne pas avoir rencontré les problèmes associés à un site Web fonctionnant en confiance moyenne. J'ai seulement développé des applications intranet ou utilisé une société d'hébergement qui fonctionne en toute confiance. Mais l'hôte que l'on m'a demandé d'utiliser pour un projet récent fonctionne sur un niveau de confiance moyen. J'essaie donc de faire fonctionner mon application. Quelques questions - Je développe sur Windows XP. Les services Internet (IIS) peuvent-ils être configurés pour une confiance moyenne (plus facile à déboguer) et / ou s'agit-il d'un paramètre web.config? Il existe une mine d'informations sur ce sujet et la courbe d'apprentissage est raide.

Deuxièmement, après beaucoup de bidouillage et de suppression de code, je pense que cette ligne est à l'origine d'une erreur d'autorisation:

Pour chaque FieldInfo en tant que FieldInfo dans Type.GetFields (BindingFlags.Instance ou BindingFlags.NonPublic ou BindingFlags.Public)

Quelqu'un peut-il préciser qu'il s'agit d'un candidat possible, en particulier ce drapeau non public? C'est copy & Amp; code collé (Coding Horror a souligné le risque de cela), donc je n’ai jamais vraiment réfléchi. Je suppose que la boucle traverse chaque champ de l'objet, qu'il s'agisse de champs publics ou non publics. J'ai lu que les champs protégés sont interdits avec une réflexion sur la confiance moyenne.

Cordialement, Rob.

Était-ce utile?

La solution

Désolé, la réflexion avec NonPublic équivaut à une confiance totale.

Si, d'une manière ou d'une autre, je n'avais pas une confiance totale, mais que j'avais une réflexion non publique, je pourrais en tirer parti pour modifier mon propre niveau de confiance du code (chaînes enregistrables, etc.).

Autres conseils

Oui, un site Web sur XP peut être configuré pour fonctionner en confiance moyenne:

Dans le < system.web > section ajouter ce qui suit:

<!-- Case is important: it's Medium, not medium -->
<trust level="Medium"/>

Et vous êtes là.

Ce que vous constaterez peut-être, c’est que la plupart des hôtes exploitent leurs sites dans un & "; Moyen &"; paramètre de confiance, avec quelques droits supplémentaires allant au-delà de la valeur par défaut - leurs techniciens devraient pouvoir vous indiquer leurs différences éventuelles.

Si vous jetez un oeil à:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\web_mediumtrust.config

vous verrez les paramètres par défaut appliqués.

La réflexion est l’un des éléments clés de la confiance moyenne, tiré des remarques du GetFields page:

  

Si le champ demandé est non public et que l'appelant ne dispose pas de ReflectionPermission pour refléter les objets non publics en dehors de l'assembly en cours, cette méthode renvoie une référence null (Nothing en Visual Basic).

Comme cela peut potentiellement renvoyer null, vous devriez probablement vérifier la présence de null avant de commencer à l'itérer, ou vérifier que FieldInfo n'est pas null / rien avant de l'utiliser.

Je vais signaler ceci comme étant fermé car personne n’a répondu et c’était aussi trop problématique pour essayer de recoder. Le programme n’est pas mal écrit, mais il utilise beaucoup la réflexion pour le mappage d’objets. Pour être honnête, il est plus facile de trouver une société d’hébergement qui offre une confiance totale.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top