문제

이 다음 코드를 사용하여 양식 기반 인증을 사용하는 엑스트라 넷에서 사용자를 가장합니다.

InvalidOperationException.

나는 AllUsers [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

The problem solved when You add the user to the site under site setting -> people and groups

다른 팁

Can you try following, I have just kept new SPSite and SPWeb object outside RunWithElevatedPrivileges

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 + ")";
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top