我正在使用使用Windows身份驗證的Silverlight業務應用程序。在主頁中檢索值
當用戶登錄到計算機並訪問Silverlight URL時,它們所呈現的數據基於其Windows登錄詳細信息。用戶名是從登錄狀態檢索的頁面上像所謂
string fullUserName = WebContext.Current.User.DisplayName;
string userName = fullUserName.Substring(fullUserName.IndexOf('\\') + 1);
因此,例如這裏的fullUserName
將「計算機名\用戶名」,然後是第二線擺脫的「計算機名\」見好就收用戶名。
一個用戶名已經從網頁中提取,它在一個Web服務調用來帶回基於用戶數據帳戶 -
void OnLoad(object sender, RoutedEventArgs e)
{
string fullUserName = WebContext.Current.User.DisplayName;
string userName = fullUserName.Substring(fullUserName.IndexOf('\\') + 1);
WebService.Service1SoapClient client = new WebService.Service1SoapClient();
client.IDReturnCompleted += new EventHandler<IDReturnCompletedEventArgs>(client_IDReturnCompleted);
client.IDReturnAsync(userName);
}
也能正常工作在Silverlight中的所有頁面除了主頁,這是加載時的第一頁。我相信這是由於回調是異步的,因此值用戶名尚未初始化。但是,當用戶點擊一個新的鏈接時,該值已經加載。
是否有可能在主頁中獲取此值?我已經在主頁上的加載事件和InitializeComponent中嘗試了它,但該值尚未從Web服務返回。
謝謝,我實際上實現了在該問題中提出的Web方法到我的後端。只要我是第一次打電話給前端,它就可以正常工作。我唯一擔心的是Web服務可能坐在具有不同登錄憑證的服務器上。 – Ebikeneser