العملية غير صالحة بسبب الحالة الحالية للكائن.(للإكسترانت)
-
10-12-2019 - |
سؤال
أنا باستخدام التعليمات البرمجية التالية لانتحال شخصية مستخدم على إكسترانت الذي يستخدم المصادقة على أساس النموذج ، ولكن عندما يتعلق الأمر بهذا الخط (SPSite s = new SPSite(siteStr, userToken);)
يلقي
إنفاليدوبيراتيونكسيبتيون.
لقد اختبرت وأعرف أن الجميعالمستخدمين [4] موجود.
string siteStr = "http://mywebSiteUrl/";
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(siteStr))
{
using (SPWeb web = site.OpenWeb())
{
SPUserToken userToken = web.AllUsers[4].UserToken;
SPSite s = new SPSite(siteStr, userToken);
SPWeb w = s.OpenWeb();
myLiteral.Text = "Currently logged in as: " + w.CurrentUser.ToString() + "( " + w.CurrentUser.Name + ")";
}
}
});
المحلول 2
تم حل المشكلة عند إضافة المستخدم إلى الموقع ضمن إعداد الموقع - > الأشخاص والمجموعات
نصائح أخرى
يمكنك محاولة التالية ، لقد أبقى فقط سبسيت جديد و سبويب كائن خارج رونيثليفاتدبريفيليجيس
string siteStr = "http://mywebSiteUrl/";
SPUserToken userToken;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(siteStr))
{
using (SPWeb web = site.OpenWeb())
{
userToken = web.AllUsers[4].UserToken;
}
}
});
SPSite s = new SPSite(siteStr, userToken);
SPWeb w = s.OpenWeb();
myLiteral.Text = "Currently logged in as: " + w.CurrentUser.ToString() + "( " + w.CurrentUser.Name + ")";
لا تنتمي إلى sharepoint.stackexchange