2010-08-09 41 views

回答

4

在SharePoint 2010

使用客戶端對象模型(http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.web.currentuser.aspx)。

喜歡的東西:

public void DoStuff() 
{ 
    ClientContext clientContext = ClientContext.Current; 

    clientContext.Load(clientContext.Web, s => s.CurrentUser); 
    clientContext.ExecuteQueryAsync((sender, args) => { 
     var currentUser = clientContext.Web.CurrentUser; 
    }, null); 
} 

在SharePoint 2007

不幸的是,客戶端對象模型上不存在SP2007。我所做之前是這樣的:

我想有一個您可以直接使用Silverlight來使用WebService,但我不知道我的頭上有一個。

+0

謝謝尼科,忘了提及它是在微軟在線(BPOS),然後在Sharepoint 2007 ... – Eric 2010-08-11 04:45:41

+0

我已更新該帖子以包含SP2007。這兩種解決方案都可以在BPOS(無服務器代碼)上工作。 – Nico 2010-08-11 09:08:07

+0

我知道這個關於Silverlight的問題,但我在連接到Sharepoint 2010的桌面應用程序中使用當前用戶的問題,並且我想通過用戶登錄過濾項目....並且此代碼在那裏不起作用...請幫助我...你是否建議在這裏問這是一個新的問題在堆棧 – 2013-04-30 03:55:48

0

只要您保留在框中的Silverlight應用程序中,就可以使用對象模型。如果你想在位於別人系統中的網站上工作。然後對象模型不會工作。嘗試使用Sharepoint的本地Web服務。

查看Authentication.asmx的Login Authenticated站點的登錄方法。您應該在這裏找到它http://server/site/_vti_bin/Authentication.asmx(請看這個樣本網站http://www.wssdemo.com/Pages/_vti_bin/Authentication.asmx

對於Windows驗證的網站,您需要查看NetworkCredentials以獲取當前用戶憑據。

+0

mmhh是的,但在Silverlight中無法訪問NetworkCredentials ... 我找到了一種方法將sharepoint ID作爲參數傳遞給silverlight應用程序,但隨後它將不能作爲'桌面'silverlight應用程序... 並使用微軟在線,身份證不是基於... 謝謝你的幫助! – Eric 2010-08-16 07:47:00

+0

@Eric ..是的,無法通過Silverlight訪問NetworkCredentials。您可以使用引用本地Endpoint的Web Service,並且可以在WebService中更改端點和憑證。或者您可以在客戶端自己設置身份驗證代理的ClientCredentials的值。它會工作。對不起,沒有提到這一點。 – 2010-08-16 17:28:33

+0

@Eric ..如果它不是一個表單身份驗證網站。使用UserGroup.asmx獲取用戶數據。你應該在這裏找到它。 http://Root/Site/_vti_bin/UserGroup.asmx,其中Root是您的服務器名稱,網站是您網站的名稱。希望這可以幫助 – 2010-08-16 17:37:17

相關問題