2009-11-26 116 views
0

我在Windows Server 2008 Enterprise中使用SharePiont Server 2007 Enterprise。我正在開發使用VSTS 2008 + C#+ .Net 3.5。我想知道SharePoint是否有任何方法將當前用戶設置爲某個特定用戶?例如,我想在用戶從特定IP地址連接到授予此人高權限時自動將用戶設置爲管理員。另一個例子是當人們使用特殊連接字符串連接我的sie時,如http://example.org/default.aspx?specialtestuser=foo,那麼我將設置當前用戶爲foo。欣賞是否有任何代碼示例參考?如何在SharePoint中設置當前用戶名?

+1

這看起來像一個安全噩夢給我,如果你不執行任何其他檢查。您還應該指定這是否是Intranet站點(即用戶都在域中)或Internet站點(因此您有某種會員制系統)。 – 2009-11-26 12:16:12

+0

請參閱下面的評論。在我的系統中,我需要有一些特殊規則來繞過表單身份驗證,以便在首次登錄時將匿名用戶設置爲其他一些用戶。我正在使用帶有Forms身份驗證的SharePoint Server。這不是一個正常的代碼路徑,但我需要該功能。我通常將用戶轉換爲低優先級的用戶(例如來自學校的圖書館來賓,但與學校外部的匿名用戶不同),因此風險很低。任何解決方案 – George2 2009-11-26 13:20:12

回答

2

在Sharepoint中,您可以使用模擬來代替特定用戶執行代碼。您也可以使用這種技術以更高的特權運行您的代碼的某個部分(比給予用戶更高的特權更好)。這裏只有2個鏈接,但如果你搜索網絡的Sharepoint和模擬,你會發現更多的鏈接。

MSDN on impersonation and other tricks

Impersonation in Sharepoint 2007

我希望這將有助於


這裏是建議設立一些HTTP模塊的另一個鏈接,看起來有點像你想做的事: siteminder and sharepoint 2007

但我從來沒有試過這個,所以我不能幫你 多得多。

+0

您提供的樣本將與另一個用戶模擬當前用戶。但我想要做的是將當前用戶從匿名設置爲其他特定用戶,並且我的要求與impersonate不同。我的要求有什麼想法? – George2 2009-11-26 12:53:20

+0

更詳細地說,我想從匿名切換到另一個用戶,而不是模仿另一個用戶,例如,在UI的右上角,用戶名foo或管理員將顯示爲匿名以外的其他用戶。任何想法如何實施? – George2 2009-11-26 12:56:47

+0

它看起來像自動驗證用戶,如果URL包含特殊參數或來自特殊IP地址。 – George2 2009-11-26 13:00:16

2

SharePoint 2007完全支持.NET Provider模型,因此您可以使用MembershipProvider模型(SharePoint內置提供程序是LdapMembershipProvider和LdapRoleProvider),該模型支持基於表單以及任何自定義身份驗證/授權體系結構。您可以從Membership全局對象中設置當前用戶。我的警告是如果您選擇這種方法,則可以在整個代碼中完全使用Membership和Roles對象。

NISHANT的博客是什麼MOSS和AD相關的非常有用的,並且有這個帖子: http://blogs.technet.com/nishants/archive/2009/05/22/how-to-configure-forms-based-authentication-active-directory-ldapmembership.aspx

+0

謝謝!這是一個針對基於AD的Forms身份驗證的出色文檔。但我沒有使用AD,但使用自定義數據庫來存儲用戶名和密碼。任何參考樣品與我的要求相似? – George2 2009-11-26 17:58:17

+1

是的,它看起來像你需要自定義MembershipProvider – maplpro 2009-11-27 12:17:31

+0

謝謝你的男人! – George2 2009-12-06 09:57:19

相關問題