Мне нужно расширить мою службу данных WCF, чтобы включить дополнительные методы, а не только таблицы базы данных.
Но, похоже, он работает неправильно.
Во-первых, я хочу спросить, законно ли это? или осуждается?
Причина, по которой мне нужно это сделать, заключается в том, что мне нужно добавить дополнительные методы REST, которые будут вызывать службы членства ASP.NET (таблицы находятся в базе данных) для проверки входа в систему, т.е.
public bool IsValidLogin(string username, string password)
{
return System.Web.Security.Membership.ValidateUser(username, password);
}
Вот что у меня есть (я упростил IsValidLogin для тестирования).
[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);
Теперь, когда я иду в
http://localhost/MyDataAccess/MyService.svc/IsValidLogin
Кажется, я получаю истинное обратно в виде XML. Но я установил URI, поэтому я подумал, что смогу это сделать.
http://localhost/MyDataAccess/MyService.svc/TestMe
Но это не удается? Я действительно запутался, есть идеи?
Также, чтобы это работало, мне нужно было добавить эту строку, но здесь немного, но запутано
config.SetServiceOperationAccessRule("IsValidLogin", ServiceOperationRights.All);
Любая помощь действительно ценится