QueryInterceptorAttribute Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
pada QueryInterceptorAttribute metode menganotasinya sebagai pencegat kueri pada kumpulan entitas yang ditentukan.
public ref class QueryInterceptorAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=true, Inherited=true)]
public sealed class QueryInterceptorAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple=true, Inherited=true)>]
type QueryInterceptorAttribute = class
inherit Attribute
Public NotInheritable Class QueryInterceptorAttribute
Inherits Attribute
- Warisan
- Atribut
Contoh
Contoh berikut mengontrol akses ke Customers
kumpulan entitas. Masing-masing Customer
hanya dapat melihat Orders
yang terkait dengan itu Customer
.
[QueryInterceptor("Orders")]
public Expression<Func<Order, bool>> FilterOrders()
{
return o => o.Customer.Name == /* Current principal name. */;
}
// Insures that the user accessing the customer(s) has the appropriate
// rights as defined in the QueryRules object to access the customer
// resource(s).
[QueryInterceptor ("Customers")]
public Expression<Func<Customer, bool>> FilterCustomers()
{
return c => c.Name == /* Current principal name. */ &&
this.CurrentDataSource.QueryRules.Contains(
rule => rule.Name == c.Name &&
rule.CustomerAllowedToQuery == true
);
}
Keterangan
Otorisasi dan validasi tingkat set entitas diimplementasikan oleh metode yang dianotasi dengan QueryInterceptorAttribute. Layanan Data WCF tidak menerapkan kebijakan keamanan tetapi sebaliknya menyediakan infrastruktur yang diperlukan pengembang layanan untuk menulis aturan keamanan dan validasi bisnis mereka sendiri.
Kontrol dan validasi akses set entitas diaktifkan melalui operasi kueri dengan menggunakan komposisi kueri. Untuk mengontrol akses berbasis entitas, terapkan metode per entitas yang ditetapkan sesuai dengan aturan berikut:
Metode harus memiliki cakupan publik dan diannotasikan dengan QueryInterceptorAttribute, dengan mengambil nama entitas yang ditetapkan sebagai parameter.
Metode ini tidak boleh menerima parameter.
Metode harus mengembalikan ekspresi jenis Expression<Func<T, bool>>
yang merupakan filter yang akan disusun untuk kumpulan entitas.
Konstruktor
QueryInterceptorAttribute(String) |
Menginisialisasi instans QueryInterceptorAttribute baru kelas untuk kumpulan entitas yang ditentukan oleh |
Properti
EntitySetName |
Mendapatkan nama kumpulan entitas yang berisi entitas tempat pencegat diterapkan. |
TypeId |
Ketika diimplementasikan di kelas turunan, mendapatkan pengidentifikasi unik untuk ini Attribute. (Diperoleh dari Attribute) |
Metode
Equals(Object) |
Mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
GetHashCode() |
Mengembalikan kode hash untuk instans ini. (Diperoleh dari Attribute) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
IsDefaultAttribute() |
Ketika ditimpa di kelas turunan, menunjukkan apakah nilai instans ini adalah nilai default untuk kelas turunan. (Diperoleh dari Attribute) |
Match(Object) |
Saat ditimpa di kelas turunan, mengembalikan nilai yang menunjukkan apakah instans ini sama dengan objek tertentu. (Diperoleh dari Attribute) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Memetakan sekumpulan nama ke sekumpulan pengidentifikasi pengiriman yang sesuai. (Diperoleh dari Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Mengambil informasi jenis untuk objek, yang dapat digunakan untuk mendapatkan informasi jenis untuk antarmuka. (Diperoleh dari Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Mengambil jumlah antarmuka informasi jenis yang disediakan objek (baik 0 atau 1). (Diperoleh dari Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Menyediakan akses ke properti dan metode yang diekspos oleh objek. (Diperoleh dari Attribute) |