J'ai un MVC3 site en C#, j'ai un point de vue particulier d'être nourri les paramètres de la requête à partir d'une fonction javascript, la fonction redirige vers le site à travers la fenêtre.emplacement.href = "../ActionName?" + query_string;
query_string étant la dynamique des paramètres de requête string construit par la fonction javascript.
La raison de cette wierdness est que, parfois, la même fonction transmet l'URL d'un ASP.Net webform dû avoir à utiliser le contrôle reportviewer, l'action alternative consiste à enregistrer certains paramètres dans ce cas, il passe à la vue. (Peut donner plus de détails si cela ne fait pas de sens)
Le tout fonctionne bien jusqu'à ce que je introduire [Autoriser] pour la méthode de l'action. Les pauses s'il est en place, fonctionne très bien sans, et [Autoriser] fonctionne très bien sur toutes les autres méthodes.
L'ensemble de l'url dans ce cas est de 966 caractères de long, après recherche il semble que le maxQueryStringLength valeur est de 2048 par défaut, mais peut substituée à une valeur de type integer, donc juste pour sourire, j'ai ajouté l'
<security>
<requestFiltering>
<requestLimits maxQueryString="2048"></requestLimits>
</requestFiltering>
</security>
la clé du fichier de configuration web sous la clé...
Pas de joie, je me suis donc ridicule et fait 4096, toujours pas de joie...
maintenant, avec l'ensemble de l'url en cours de 966 caractères de long, l'autoriser l'attribut ne peut pas sérieusement être l'ajout d'un autre 1082-3130 caractères, alors comment puis-je déterminer ce que l'erreur est en fait, ou pourquoi le paramètre n'est pas prise.
VS2010 Pro SP1