2009-11-19 31 views
3

在Sharepoint網頁中,我遇到了識別登錄用戶的問題!爲什麼HttpContext.Current.User.Identity.Name在webpart中使用時返回錯誤的用戶名?

母版包含顯示用戶名

<%@ Register TagPrefix="wssuc" TagName="Welcome" Src="~/_controltemplates/Welcome.ascx" %> 
..... 
..... 
<wssuc:Welcome id="explitLogout" runat="server" /> 

這總是顯示正確的登錄的用戶正常OOTB控制。

但是,如果我叫

HttpContext.Current.User.Identity.Name 

從web部件內,則在案件1%或2%,我會得到不正確的名稱返回。

這給了我一個頁面,它將在頂部具有正確的用戶名,並且在webpart中具有正確的用戶名。其他獲取Web部件名稱的方法返回相同的不正確名稱。如果名稱檢查器Web部件多次位於同一頁面上,那麼很少有Web部件的第二個副本具有正確的名稱或第三個不正確的身份!

身份存儲在Active Directory中,並且用戶針對ISA服務器進行身份驗證,但用戶與SharePoint基礎結構不在同一個域中。 Sharepoint場與ISA服務器,四個Web前端,一個應用服務器以及一個數據庫服務器相當複雜。

以前有沒有人有過這種情況?或者對我應該採取的調查問題的方向有任何線索!

服務器在服務器2003上運行IIS6。Sharepoint是SP2,但沒有最新的一組修補程序。

附加: 輸出緩存已啓用。經過身份驗證的緩存配置文件的「內聯網」 是該配置文件的設置如下

Title      Intranet (Collaboration Site) 
Display Name     (BLANK) 
Display Description  Optimized for collaboration sites where authoring, web part cusomization, and minor version are enabled. 
Perform ACL Check  Yes 
Enabled     Yes 
Duration    180 
Check for Changes  Yes 
Vary by Custom Parameter  (BLANK)  
Vary by HTTP Header  Browser 
Vary by Query String Parameters  (BLANK)  
Vary by User Rights  Yes 
Cacheability   ServerAndPrivate 
Safe for Authenticated Use Yes 
Allow writers to view cached content (BLANK)   
+0

用戶控件是OutputCached? – 2009-11-19 12:25:07

回答

1

的SharePoint應用程序池帳戶下運行。您需要使用 SPContext.Current.Web.CurrentUser.LoginName 才能獲取當前用戶。

+0

這給了我們與直接使用HttpContext相同的錯誤用戶。 – Loofer 2009-11-19 16:38:40

相關問題