يمكن ASP.NET انتحال شخصية المستخدم لحذف عداد الأداء الفئة؟

StackOverflow https://stackoverflow.com/questions/494036

سؤال

وأعتقد بأنني انتحاله حساب المستخدم الخاص بي بنجاح أثناء تشغيل صفحة ASP.NET على آلة المحلية.

وباستخدام الطريقة الموصوفة هنا ، لقد تغيرت بنجاح WindowsIdentity.GetCurrent().Name من ASPNET إلى حساب نطاقي.

وأستطيع أن أكتب بنجاح إلى ملف على نظام الملفات الذي فقط حسابي لديه الإذن للوصول. ولكن عندما أحاول حذف عداد الأداء التصنيف، أحصل على <م> تم رفض الوصول .
لدي التدوين على فرع من التسجيل والتي تقول لي أن <م> MyMachine \ ASPNET والفشل في الوصول إلي كائن .

وهنا هو رمز أنه فشل على:

if ( PerformanceCounterCategory.Exists ( PerfmonCategory ) )
        PerformanceCounterCategory.Delete ( PerfmonCategory );

ونقيصتها على دعوة حذف.

و(حسابي هو admin و لا أستطيع تشغيل نفس رمز خارج سياق ASP.NET بنجاح).

وأظن أن هذه الدعوة مساحة System.Diagnostics هو في الواقع يدعو بعض عملية COM وعلى نحو ما أنا التي ارتدت بسبب قفزة 2ND. هل يستطيع أحد أن يؤكد ما يمكن أن يحدث؟

وتحرير: الاستثناء: الدخول محظور الوصف: حدث استثناء غير معالج حدث أثناء تنفيذ طلب ويب الحالي. الرجاء مراجعة تتبع المكدس للحصول على مزيد من المعلومات حول الخطأ ومكان حدوثه في التعليمات البرمجية.

وتفاصيل الاستثناء:

<اقتباس فقرة>   

وSystem.ComponentModel.Win32Exception: تم رفض الوصول

والجري تحت الثقة الكاملة.

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

المحلول

هل يمكن تشغيل التطبيق الخاص بك في تجمع التطبيقات الخاص به (دائما شيء جيد) وتعيين مستخدم خدمة الحقوق المناسبة، وبهذه الطريقة لا تحتاج إلى فوضى مع التمثيل.

نصائح أخرى

وأنت لا تحتاج في الواقع إلى أن يكون المشرف من أجل إضافة أو إزالة عدادات الأداء.

ولست متأكدا لماذا كنت تريد استخدام Win32 ويدعو API للقيام الانتحال الخاص بك - انها كانت منذ بعض الوقت لقد افسدت مع ذلك، ولكن أعتقد أن كل ما عليك القيام به هو استخدام

WindowsIdentity.GetCurrent().Impersonate()

لنكون واضحين، ستحتاج أولا إلى مصادقة في تطبيق ويب باستخدام مصادقة Windows، ومن ثم يجب أن تكون قادرة على تقديم الدعوة إلى تمثيل ().

انتحال () طريقة

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