我将 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但我不确定是否有更好的方法......