2010-12-14 1 views
1

Использование как синхронных, так и асинхронных обработчиков событий (itemAdded и itemAdding), я не смог добавить пользователя на сайт Sharepoint 2010 - используя проверку подлинности на основе форм (что я знаю правильно настройки и работы, потому что он отлично работает с пользовательским интерфейсом Sharepoint из того, что я могу сказать)Невозможно добавить пользователя в Sharepoint 2010 в обработчик события

Calling Membership.CreateUser не работает и постоянно выдает исключение из «ссылки на объект, не установленной в экземпляр объекта». Отладка и изучение членства, ясно, что что-то не так. Большинство членов также являются исключениями или исключениями. Я знаю, что членство не имеет этой проблемы на странице приложения (я могу добавлять пользователей, добавлять их в группы и т. Д. Со страницы приложения, но это не работает внутри обработчика событий). Первоначально мы думали, что это проблема HttpContext, но мы можем получить HttpContext.Current внутри itemAdding(), так что это может не иметь большого значения.

Любые подсказки? Можно ли добавлять пользователей на SP2010 в обработчик событий?

Справочная информация: когда я добавляю новую строку в список (с столбцом электронной почты), разрешения предоставляются пользователю с указанным адресом электронной почты - если этого пользователя не существует, я хочу его создать (опять же, для Аутентификация на основе форм)

ответ

0

Я никогда не делал разработку общих разделов, но это похоже на проблему с поперечным потоком. Событие создаст новый поток, который не будет иметь доступ к потоку, содержащему «Членство». попробуйте передать его с помощью делегата? например

Object.ItemAdded+= (o, args) => Class.Method(o, args, Membership); 
+0

Это интересная идея. Я не думаю, что могу это сделать, потому что у меня нет доступа к коду вызывающего потока, так что я могу создать делегат для вызова? При дальнейшей проверке я обнаружил, что эта проблема не существует на сайтах, которые не используют FBA. Поэтому, возможно, у меня больше проблем с настройкой FBA. –

+0

было бы возможно немного больше кода? – Euclid