تقييد الوصول إلى خدمة WCF REST (webHttpBinding) باستخدام موفر عضوية ASP.NET؟
-
20-08-2019 - |
سؤال
لقد وجدت الكثير من المواد على الويب حول استخدام موفر عضوية ASP.NET مع wsHttpBindings، لكنني لم أر أي إشارة لاستخدامه مع webHttpBindings.
أبحث عن نظام يعمل في سيناريوهين:
- يقوم المستخدم بتسجيل الدخول إلى موقع ويب asp.net ويقوم موقع الويب بإجراء مكالمات للخدمة.
- يصل المستخدم إلى الخدمة مباشرة عبر REST.
هل هذا ممكن باستخدام الإطار المدمج (أي؟فقط من خلال التكوين)؟إذا كان الأمر كذلك كيف يمكنني تكوين الخدمة؟وكيف يقوم المستخدم بتمرير بيانات الاعتماد إلى خدمة REST؟
المحلول
أفضل مصدر وجدته هنا: http://www.leastprivilege.com/FinallyUsernamesOverTransportAuthenticationInWCF.aspx
يحتوي الموقع أيضًا على الكثير من المعلومات الأخرى حول إعداد وحدات HTTP للتعامل مع المصادقة الأساسية (والتي أعتقد أنك ستستخدمها نظرًا لأنها نوع من المعايير).
توجد طريقة مصادقة وحدة HTTP على Codeplex مع نموذج التعليمات البرمجية وكل شيء هنا: http://www.codeplex.com/CustomBasicAuth
نصائح أخرى
خدمات بيانات ADO.NET تقصد؟
يمكنك إنشاء QueryInterceptor لكيان ما وتقييد الوصول إليه.على سبيل المثال:
[QueryInterceptor("foo_entity")]
public Expression<Func<foo_entity, bool>> FilterMembership()
{
MembershipUser user = Membership.GetUser();
Guid userGuid = (Guid)user.ProviderUserKey;
return c => c.UserId == userGuid;
}