Я использую WCF с моим приложением ASP.NET MVC, моя служба данных получает данные из моего (EF 4.1) .mdf файла.Но есть кое-что, что я хочу показать с аутентификацией, например:
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("Exercies", EntitySetRights.All);
config.SetServiceOperationAccessRule("GetAllExercies", ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
}
[WebGet]
public IQueryable<Exercise> GetAllExercies(string name, string pass)
{
if (Membership.ValidateUser(name, pass))
return CurrentDataSource.Exercies;
else
return CurrentDataSource.Exercies.Where(e => e.Public == true);
}
Теперь, когда пользователь обращается к httx: //localhost/MyService.svc/Exercies, они могут получить все, хотя им не даютимя пользователя и пароль.
Мое временное решение - переименование GetAllExercies на Exercies , но я не уверен, что есть лучший способ ...