在主页中检索值

本文关键字:检索 主页 | 更新日期: 2023-09-27 18:34:38

我正在使用使用Windows身份验证的Silverlight业务应用程序。

当用户登录到计算机并访问 Silverlight URL 时,他们看到的数据基于其 Windows 登录详细信息。用户名是从页面上的登录状态中检索的,如下所示-

string fullUserName = WebContext.Current.User.DisplayName;
string userName = fullUserName.Substring(fullUserName.IndexOf('''') + 1);

因此,例如,这里的fullUserName将是"machineName''UserName",然后第二行去掉"machineName''"以只留下用户名。

一个用户名已从页面中提取,它用于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 的所有页面上都工作正常,除了主页,主页是加载时的第一页。我相信这是因为回调是异步的,因此值用户名尚未初始化。但是,当用户单击新链接时,该值已加载。

是否可以在主页中获取此值?我已经在主页上的加载事件和初始化组件中尝试过它,但该值尚未从 Web 服务返回。

在主页中检索值

我认为不可能

用纯银光获得当前的域用户。你可以检查这个问题,为什么它不是直接可能的;在 Silverlight 中获取当前 Windows 用户名

另一方面,您可以使用将此值从 aspx 文件注入到 silverlight,请参阅此链接。