Добавление семейства сайтов в веб-приложение, зарегистрированное как FBA в SharePoint 2010 - PullRequest
0 голосов
/ 21 января 2011

Привет Я пытаюсь создать семейство сайтов в веб-приложении, которое настроено как проверка подлинности на основе утверждений, а код выглядит следующим образом:

SPSecurity.RunWithElevatedPrivileges(delegate {
  using (SPSite site = SPContext.Current.Site)
  {
    using (SPWeb web = site.RootWeb)
    {
      site.AllowUnsafeUpdates = true;
      web.AllowUnsafeUpdates = true;
      try
      {
        SPWebApplication web_App = web.Site.WebApplication;
        web_App.Sites.Add(SiteUrl, SiteTitle, Description, Convert.ToUInt32(Constants.LOCALE_ID_ENGLISH), SiteTemplate, OwnerLogin, "testuser", OwnerEmail);
      }
      catch (Exception ex)
      { 
        string s = ex.Message + " " + ex.StackTrace;
        throw;
      }
      finally
      {
        web.AllowUnsafeUpdates = false;
        site.AllowUnsafeUpdates = false;
      }
    }
  }
});

Здесь я передаю "OwnerLogin" как "CustomMembership: UserName". Но web_App.Sites.Add выдает странную ошибку, такую ​​как «ex = {Невозможно оценить выражение, потому что код оптимизирован или собственный фрейм находится над стеком вызовов.}». Любая помощь в этом отношении очень ценится.
С уважением,
Пэдди

Ответы [ 2 ]

1 голос
/ 22 января 2011

Ваш код места неверен, вам нужно создать совершенно новые ссылки на SPSite и SPWeb. Я обычно префикс их с «с», чтобы показать мне, что это в другом контексте.

SPSecurity.RunWithElevatedPrivileges(delegate() {
    using (SPSite csite = new SPSite(SPContext.Current.Site.ID)) {
        using (SPWeb cweb = csite.OpenWeb(SPContext.Current.Site.RootWeb.ID)) {
            //do stuff
        }
    }
});
0 голосов
/ 24 января 2011

Параметр OwnerLogin должен , а не содержать префикс CustomMembership: - передать в качестве значения этого параметра обычный Имя пользователя .


Кстати, ваш метод получения объекта веб-приложения излишне сложен - используйте что-то вроде этого:

SPWebApplication webApplication = SPWebApplication.Lookup(new System.Uri("Web-Application-URL"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...