Limitare l'accesso a un servizio REST WCF (webHttpBinding) utilizzando il provider di appartenenze ASP.NET?
-
20-08-2019 - |
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:
- L'utente ha effettuato l'accesso a un sito Web asp.net e il sito Web sta effettuando chiamate al servizio.
- 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?
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;
}