Pourquoi Url.IsLocalUrl renvoie false si l'URL contient un fragment?
Je suis en utilisant Url.IsLocalUrl
pour vérifier si l'URL de retour transmis à mon authentification de l'action est locale ou non. Il fonctionne bien tant qu'il n'y a pas de fragment dans l'URL. Qui est,
/t/test-team-3/tasks/lists/15
retourne vrai, mais /t/test-team-3/tasks#/lists/15
renvoie la valeur false.
Quel est le raisonnement derrière cela? Est-il un obscur problème de sécurité qui pourrait se manifester dans le fragment, ou puis-je ignorer le fragment lorsque je vérifie si l'URL est locale?
source d'informationauteur Ragesh
Vous devez vous connecter pour publier un commentaire.
Cette méthode appelle en interne la Uri.IsWellFormedUriString méthode. Lorsque vous appelez cette méthode sur une URL relative contenant un fragment, elle retourne false. Il est un bug sur la connexion MS qui est fermé avec la par la conception raison.
Lorsque vous utilisez cette méthode sur une URL absolue (avec un schéma comme http/https) la méthode se comporte comme prévu. Je pense que la raison en est que la classe Uri est destiné à travailler non seulement avec les Url HTTP. Lorsque vous ne spécifiez pas le protocole (URL relative), un générique URL analyseur est utilisé qui ne permet pas de fragments.
Donc je suppose que vous avez deux possibilités:
http://foo.com/t/test-team-3/tasks#/lists/15
) car de toute façon si vous êtes à l'appel de cette méthode sur une URL relative, nous pouvons espérer que c'est une URL locale.