Beschränkung des Zugriffs auf einen WCF REST (webHttpBinding) Service der ASP.NET-Mitgliedschaftsanbieter verwenden?
-
20-08-2019 - |
Frage
Ich habe viel Material auf dem Netz über die Verwendung des ASP.NET-Mitgliedschaftsanbieter mit den wsHttpBindings gefunden, aber ich habe keinen Hinweis auf die Verwendung mit webHttpBindings gesehen.
Ich bin auf der Suche nach einem System, das in zwei Szenarien funktioniert:
- Der Benutzer in eine asp.net Website angemeldet ist und die Website ist, Anrufe an den Dienst zu machen.
- Der Benutzer greift auf den Dienst direkt über REST.
Ist das möglich, der in Rahmen gebaut unter Verwendung von (das heißt nur durch Konfiguration)? Wenn ja, wie konfiguriere ich den Dienst? Und wie passieren die Benutzer die Anmeldeinformationen an den REST-Service?
Lösung
Die beste Quelle, die ich gefunden habe, ist hier: http://www.leastprivilege.com/FinallyUsernamesOverTransportAuthenticationInWCF aspx
Die Seite hat auch Tonnen von anderen Informationen zu HTTP-Module einrichten Standardauthentifizierung zu behandeln (was ich vermute, Sie verwenden werden, da es eine Art des Standard ist).
Die HTTP-Modul-Authentifizierungsmethode ist auf Codeplex mit Beispielcode und allem hier: http: //www.codeplex .com / CustomBasicAuth
Andere Tipps
ADO.NET Data Services Sie?
Sie können eine QueryInterceptor für ein Unternehmen aufzubauen und den Zugriff darauf einzuschränken. Zum Beispiel:
[QueryInterceptor("foo_entity")]
public Expression<Func<foo_entity, bool>> FilterMembership()
{
MembershipUser user = Membership.GetUser();
Guid userGuid = (Guid)user.ProviderUserKey;
return c => c.UserId == userGuid;
}