2
我使用WCF与我的ASP.NET MVC应用程序,我的数据服务从我的(EF 4.1).mdf文件中获取数据。但是,有一些费尔德,我想验证显示,例如:如何只允许从WCF数据服务ServiceOperation访问
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但我不知道有没有什么更好的办法?
由于拦截器不能不接受参数...我只是用它来禁用实体集访问。对我有没有更好的解决方案? – nvcnvn 2012-01-17 09:26:34
没关系.....我现在使用HttpContext来访问查询字符串。 – nvcnvn 2012-01-17 14:25:21