ASP.NET - انتحال مؤقتا ID خدمة تجمع التطبيق عند الافتراضي لانتحال صفة المستخدم؟

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

سؤال

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

ما هي أفضل طريقة لتشغيل بعض التعليمات البرمجية باستخدام ID خدمة تطبيق ويب، ثم العودة إلى استخدام التمثيل الافتراضي؟

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

نصائح أخرى

ونات هو الصحيح. يجب عليك استخدام SPSecurity.RunWithElevatedPrivileges. تحت الأغطية أنه يقوم ReverToSelf أن يذكر أنتوني، ولكن من الأسهل بكثير استخدام أسلوب مساعد. يمكنك استخدام مندوب المضمنة كما في المثال التالي.

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

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    // Your are now inside the delegate
    // Anything provided within this block is marshaled across the app domain
    using (SPSite site = new SPSite("http://myserver/sites/mysite"))
    {
        using (SPWeb web= site.OpenWeb())
        {
            // Do stuff here
        }
    }
});

وتحت ASP كان لي DLL فائدة التي يمكن استخدامها للاتصال وظيفة (وجدت في advapi32.dll) RevertToSelf Win32 ول() للحصول على ASP لتعمل تحت هوية تجمع التطبيقات.

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

وربما كنت قد تفعل الشيء نفسه مع PInvoke في ASP.NET ولكن أنا لا أعرف ما هو الأثر الذي قد يكون في هذا الإطار. أنا واثق من أنه سيكون آخر فقط للطلب الحالي. أنا لا أعتقد أن هناك أي API. NET القياسية للقيام بذلك.

وسهلة! التفاف المكالمات كنت صنع في كتلة HostingEnvironment.Impersonate ().

http://msdn.microsoft كوم / EN-US / مكتبة / system.web.hosting.hostingenvironment.impersonate.aspx

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