ASP.NET MVC アプリで WCF を使用し、データ サービスは (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に変更することですが、他に良い方法があるかどうかはわかりません...