2010-04-14 2 views
1

J'ai un site Web qui héberge un service Web qui utilise l'autorisation du fournisseur d'appartenances. Je souhaiterais pouvoir m'authentifier via mon appel de service Web à partir d'un deuxième site sans être renvoyé à ma page de connexion sur le site WebService. Comment puis-je accomplir cela?Accès à un service Web derrière un fournisseur d'appartenance

En note, il serait préférable pour moi d'autoriser une règle personnalisée pour des hôtes spécifiques accédant au site. Donc, si la demande provient de www.mysite.com, cela annulera l'autorisation.

Répondre

1

Vous pouvez utiliser une balise <location/> dans votre fichier web.config pour ouvrir un répertoire ou un fichier spécifique.

Je ne crois pas qu'il existe une méthode intrinsèque de contrôle d'accès par hôte.

Une manière très simple de le faire serait de mettre en œuvre un simple HttpModule qui protège le point de terminaison ou le répertoire.

using System; 
using System.Net; 
using System.Web; 

namespace HttpLibArticleSite 
{ 
    public class GuardDogModule : IHttpModule 
    { 
     #region IHttpModule Members 

     public void Init(HttpApplication context) 
     { 
      context.BeginRequest += BeginRequest; 
     } 

     public void Dispose() 
     { 
      //noop 
     } 

     #endregion 

     private static void BeginRequest(object sender, EventArgs e) 
     { 
      HttpContext ctx = (HttpContext) sender; 

      if (ctx.Request.Url is not guarded) return; 

      if (ctx.Request.Headers["take your pick"] != what 
      you want) 
      { 
       ctx.Response.StatusCode = (int) HttpStatusCode.Forbidden; 
       ctx.Response.End(); 
      } 
     } 
    } 
} 

non conforme, évidemment, et non testé, mais vous obtiendrez où vous devez aller. Reportez-vous simplement à la section web.config system.web/httpModules pour voir comment déployer.

Cheers.

0

Vous devez placer un fichier web.config dans le répertoire de votre service Web et autoriser l'accès anonyme. Vous pouvez également utiliser l'authentification Windows uniquement et utiliser l'emprunt d'identité pour autoriser l'appel.

Questions connexes