سؤال

أرغب في إضافة مصادقة بسيطة إلى خدمات البيانات ، في الوقت الحالي فقط لتقييد الوصول إلى تطبيقات معينة عن طريق الرمز البسيط.

لا أحتاج إلى مصادقة المجال أو مصادقة النماذج.

قرأت الكثير عن المصادقة هنا:

http://franssenden.wordpress.com/2010/06/14/custom-security-odata-service-wcf-data-services/

http://mtaulty.com/communityserver/blogs/mike_taults_blog/archive/2008/06/03/10482.aspx

http://mtaulty.com/communityserver/blogs/mike_taults_blog/archive/2008/01/15/10119.aspx

http://mtaulty.com/communityserver/blogs/mike_taults_blog/archive/2008/01/10/10100.aspx

لسوء الحظ ، كل هذا يتطلب حدوث عمل. الأهم من ذلك كله إنشاء IHTTPModule مخصص. يجب أن يكون هناك حل أكثر بساطة.

أعلم أنه عندما أقوم بإنشاء سياق الكائن على العميل (WPF) يمكنني إضافة بيانات الاعتماد.

Uri uri = new Uri("http://localhost/myapp/odata.svc");

MyEntities ent= new MyEntities (uri);
ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56");

ولكن أين يمكنني قراءتها (بدون تنفيذ IHTTPModule المخصص)؟

اعتقدت أنه يمكنني استخدام شيء ما في الفصل وهو تطبيق خدمة البيانات على سبيل المثال:

protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
 string cred = args.OperationContext.AbsoluteRequestUri.UserInfo;
}

أنا لست على دراية بـ UserInfo ولكن الوصف الخاص به يقف "يحصل على اسم المستخدم وكلمة المرور ، ...)

لذلك لدي سؤالان رئيسيان:

  1. أين يمكنني قراءة بيانات الاعتماد المضمنة عن طريق كتابة ent.credentials = networkcredential ("Token" ، "ZX5AS9VXC5SA9H0VB6523CV56") ؛

  2. أين يمكنني (إذا كان بإمكاني) تعيين userinfo على تطبيق العميل واستخدامه في طريقة onStartProcessingRequest.

تحياتي ، دانييل سكورويسكي

هل كانت مفيدة؟

المحلول

هناك سلسلة من المنشورات حول مصادقة وخدمات بيانات WCF (وهي تنفيذ .NET لبروتوكول ODATA): http://blogs.msdn.com/b/astoriateam/archive/tags/authentication/

يجب أن تكون قادرًا على العثور على مزيد من المعلومات هناك (بما في ذلك عينات التعليمات البرمجية).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top