2010-12-14 51 views
1

使用同步和異步事件處理程序(itemAdded和itemAdding),我無法將用戶添加到我的Sharepoint 2010站點 - 使用基於窗體的身份驗證(我知道這是正確的安裝和工作,因爲它已從我可以告訴的Sharepoint UI完美工作)無法將用戶添加到Sharepoint 2010中的事件處理程序

調用Membership.CreateUser不起作用,並不斷拋出「對象引用未設置爲對象實例」的異常。調試和查看會員資格,顯然有些事情是錯誤的。大多數成員都是空的或者拋出異常。我知道成員資格在應用程序頁面中沒有這個問題(我可以添加用戶,將它們添加到組等,從一個應用程序頁面,但它在一個事件處理程序內失敗)。我們原本以爲這是一個HttpContext問題,但我們可以在itemAdding()中獲得HttpContext.Current,所以這可能沒有多大區別。

任何線索?是否可以在事件處理程序中將用戶添加到SP2010中?

背景:當我向列表中添加一個新行時(使用電子郵件列),將權限授予具有指定電子郵件地址的用戶 - 如果該用戶不存在,我想創建它(再次基於表單的身份驗證)

回答

0

我從來沒有做過任何共享點開發,但它聽起來像一個交叉線程問題..該事件將創建一個新的線程,不會有包含'會員'的線程訪問。嘗試通過使用委託傳遞它? 例如

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

這是一個有趣的想法。我不認爲我可以這樣做,因爲我無法訪問調用線程的代碼 - 所以我可以創建一個委託來調用? 經過進一步的檢查,我發現這個問題在不使用FBA的網站中不存在。所以也許我在FBA設置方面有更多問題。 – 2010-12-14 17:00:17

+0

會有可能多一點的代碼? – Euclid 2010-12-14 17:08:12

相關問題