2010-05-06 6 views
2

J'ai des services Web construits avec les clients ASP.NET et ASP.NET qui les consomment. En consommant les services Web, comment forcerais-je les clients à utiliser https?ASP.NET - consommer le service web - https seulement - comment?

Je ne veux pas forcer tout le site à utiliser https en activant SSL requis dans IIS.

Puis-je utiliser le module de réécriture d'URL IIS7 aux requêtes HTTP re-route vers https?

Répondre

3

Non, vous ne pouvez pas utiliser la réécriture d'URL pour modifier le protocole.

Au lieu de cela, vous pouvez simplement implanter un chèque dans votre service Web et jeter une exception si le protocole est HTTP.

3

Toute chance que vous pouvez ajouter vos webservices à un répertoire virtuel et juste forcer le répertoire virtuel pour utiliser SSL? En plus de vérifier à l'intérieur des appels WebService comme Fiodor suggère, vous pouvez ajouter un chèque Application_BeginRequest dans votre global.asax, bien que ce n'est pas très bien rangé:

void Application_BeginRequest(object sender, EventArgs e) 
{ 
    if (!Request.IsSecureConnection && Request.Url.ToString().Contains(".asmx")) 
    { 
     string secureUrl = Request.Url.ToString().Replace("http:", "https:"); 
     Response.Redirect(secureUrl); 
    } 
} 
+0

J'ai essayé à la recherche d'un moyen de définir Nécessite SSL pour un répertoire virtuel, mais dans IIS 7.5, on dirait que vous ne pouvez le faire que pour le site, s'il vous plaît corrigez-moi si je me trompe. – Steve

+0

Jetez un oeil à cet article technet. Il semble que vous pouvez spécifier require ssl down au niveau de la page individuelle: http://technet.microsoft.com/en-us/library/cc732367(WS.10).aspx –

Questions connexes