私のASP.NET MVCアプリケーションでWCFを使用すると、データサービスがmy(EF 4.1).mdfファイルからデータを取得します。ときに、ユーザーのアクセスhttxWCF Data Service 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);
}
今:しかし、私は例えば、認証で表示したいいくつかのフェイルドがある//localhost/MyService.svc/Exercies彼らはユーザ名を与えられていないが、彼らはすべてのものを得ることができますパスしてください。クエリインターセプタ:
私の一時的な解決策は、名前にGetAllExerciesにちょうどExerciesが、任意のより良い方法がある私はわからない...
インターセプタはパラメータを受け入れることができないため、エンティティセットアクセスを無効にするために使用します。もっと良い解決策はありますか? – nvcnvn
気にしない.....私は現在、HttpContextを使ってクエリ文字列にアクセスしています。 – nvcnvn