Limitare l'accesso a un servizio REST WCF (webHttpBinding) utilizzando il provider di appartenenze ASP.NET?

StackOverflow https://stackoverflow.com/questions/481090

Domanda

Ho trovato molto materiale sul web sull'uso del provider di appartenenze ASP.NET con wsHttpBindings, ma non ho visto alcun riferimento all'utilizzo con webHttpBindings.

Sto cercando un sistema che funzioni in due scenari:

  1. L'utente ha effettuato l'accesso a un sito Web asp.net e il sito Web sta effettuando chiamate al servizio.
  2. L'utente accede direttamente al servizio tramite REST.

È possibile utilizzare il framework integrato (ovvero solo attraverso la configurazione)? In tal caso, come posso configurare il servizio? E in che modo l'utente passa le credenziali al servizio REST?

È stato utile?

Soluzione

La migliore fonte che ho trovato è qui: http://www.leastprivilege.com/FinallyUsernamesOverTransportAuthenticationInWC aspx

Il sito ha anche tonnellate di altre informazioni sull'impostazione dei moduli HTTP per gestire l'autenticazione di base (che suppongo che userete poiché è un po 'lo standard).

Il metodo di autenticazione del modulo HTTP si trova su Codeplex con codice di esempio e tutto qui: http: //www.codeplex .com / CustomBasicAuth

Altri suggerimenti

Servizi dati ADO.NET intendi?

È possibile creare un QueryInterceptor per un'entità e limitarne l'accesso. Ad esempio:

    [QueryInterceptor("foo_entity")]
    public Expression<Func<foo_entity, bool>> FilterMembership()
    {
        MembershipUser user = Membership.GetUser();
        Guid userGuid = (Guid)user.ProviderUserKey;
        return c => c.UserId == userGuid;
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top