Pourquoi ne pas Demander.Url.Système de retour HTTPS?
Je suis en train de travailler sur un serveur local et j'ai besoin d'une URL spécifique pour être accessibles via HTTPS, tandis que le reste via HTTP. J'ai configuré Visual Studio pour utiliser IIS Express si je peux utiliser le HTTP/SSL.
J'ai une méthode comme suit:
[RequireHttps]
public ActionResult SomeHttpsMethod()
{
//Do something
}
Dans un autre endroit que j'ai:
var url = Url.Action("SomeHttpsMethod", "SomeHttpsController", new { someParams }, Request.Url.Scheme);
Si je accéder à mon site à l'aide de HTTP
c'est à dire http://localhost:httpport
, je reçois toujours HTTP
retourné à partir de Request.Url.Scheme
au lieu de HTTPS
. Est-ce qu'il est censé travailler?
Évidemment, si j'ai accès à mon site à l'aide de HTTPS
c'est à dire, pour commencer c'est à dire https://localhost:sslport
, HTTPS
est retourné (qui est ce que je veux) mais je ne veux pas avoir à accéder au site en HTTPS
, seulement pour l'URL/méthode de contrôleur.
- C'est parce que
Request.Url.Scheme
est le régime de la présente demande, qui est http.
Vous devez vous connecter pour publier un commentaire.
Cette ligne:
construit une URL basée sur votre actuel demande du régime, qui est HTTP.
Request
se réfère toujours à la demande actuelle.Que vous seriez mieux de coder en dur "https" dans ce lieu depuis que tu veux toujours être sûr de toute façon:
https://localhost/somehttpsmethod
qui je suis incapable de vous connecter à, car il doit êtrehttps://localhost:44300/somehttpsmethod
.Dans mon cas, il s'agissait de mal définir des règles sur l'ARR serveur. Juste quelque chose à regarder si vous obtenez HTTP au lieu de HTTPS.