Ich muss meinen WCF-Datendienst erweitern, um zusätzliche Methoden, nicht nur die Datenbanktabellen, aufzunehmen.
Aber es scheint nicht richtig zu funktionieren.
Zunächst möchte ich fragen, ob dies legal ist oder verpönt?
Der Grund, warum ich es tun muss, ist, dass ich zusätzliche REST-Methoden hinzufügen muss, die einen Aufruf an ASP.NET Membership Services (die Tabellen sind in der Datenbank) machen, um eine Anmeldung zu validieren, d.h..
public bool IsValidLogin(string username, string password)
{
return System.Web.Security.Membership.ValidateUser(username, password);
}
Hier ist, was ich habe (ich habe die IsValidLogin zum Testen vereinfacht).
[WebGet(UriTemplate = "TestMe")]
public bool IsValidLogin()
{
return true;
}
// This method is called only once to initialize service-wide policies.
public static void InitializeService(DataServiceConfiguration config)
{
// TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
// Examples:
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.SetServiceOperationAccessRule("IsValidLogin", ServiceOperationRights.All);
Wenn ich jetzt zu
http://localhost/MyDataAccess/MyService.svc/IsValidLogin
Es scheint zu funktionieren, ich erhalte eine echte Rückmeldung in Form von XML. Aber ich habe einen URI gesetzt, so dass ich dachte, ich könnte dies tun
http://localhost/MyDataAccess/MyService.svc/TestMe
Aber es scheitert? Ich bin wirklich verwirrt, irgendwelche Ideen?
Auch für sie zu arbeiten, musste ich diese Zeile hinzufügen, aber ein wenig, aber hier verwirrt
config.SetServiceOperationAccessRule("IsValidLogin", ServiceOperationRights.All);
Jede Hilfe ist sehr willkommen