2011-04-26 65 views
0

我已經創建了一個自定義網站,該網站將爲希望通過asp.net成員資格帳戶訪問我的SharePoint站點的新用戶提供註冊。當新用戶點擊註冊時,我想發送有關新用戶的電子郵件通知給特定分享點組的所有成員。問題是,註冊網站允許匿名訪問(以及它有:)),但得到的所有用戶羣中我重定向到登錄頁面的代碼(第二行):Sharepoint組和匿名訪問

var web = SPContext.Current.Web; 
return web.Groups[groupName].Users; 

我創建了一個新用戶組並設置「誰可以查看該組的成員資格?」給每個人,但仍然,我不能沒有登錄就得到這些團體。是可以的嗎?

回答

0

SharePoint有能力使用RunWithElevatedPrivileges運行代碼塊,RunWithElevatedPrivileges以SharePoint系統帳戶的標識運行。如果你用上面的代碼塊來包裝,你應該能夠得到你所引用的組。

確保在代碼中正確調用Dispose是非常重要的,這樣您就不會離開對spSite對象的引用等。因此,幾乎所有RunWithElevatedPrivileges示例都使用using構造。在

http://msdn.microsoft.com/en-us/library/bb466220.aspx

+0

這似乎是應該解決問題的東西,但它不在我的情況下,我仍然被重定向到我的登錄頁面。也許它與網站屬性有關,但我相信我已經把它們全部設置好了。 – matt99 2011-04-26 12:02:16

+0

我會廣告我的代碼,以防萬一,也許有什麼我在這裏做,並且不能看到它: SPSecurity.RunWithElevatedPrivileges(delegate() {0121}使用(SPSite ElevatedsiteColl = new SPSite(SPContext.Current.Site.ID) ) { 使用(的SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb(SPContext.Current.Web.ID)) { userColl = ElevatedSite.SiteGroups [組名]。用戶; } } }); – matt99 2011-04-26 12:03:17

+0

很難從代碼中知道,但是您需要在ElevatedPrivileges塊中「使用」要引用的對象。它離開了範圍,一旦你離開該塊或將不再運行在更高的安全上下文 – 2011-04-26 12:42:26

0

更多信息當我這樣做過,我創建了允許匿名用戶創建新的項目,然後放入發送通知給相應的人員名單上的警報列表/組。我不記得以這種方式發送通知有任何安全問題。