0

我有一个 Web 应用程序,它在我的浏览器中运行没有任何问题。但是,如果我在浏览器外安装它,当我尝试获取用户名时,userAccount 不在字典中:

private void Application_Startup(object sender, StartupEventArgs e) {
  string userId = e.InitParams["UserAccount"];//--> KeyNotFoundException
  //...
}

这是正常的,因为我通过在 aspx 网页中启动 silverlight 来提供它:

<param name="InitParams" value="UserAccount=<%=HttpContext.Current.User.Identity.Name%>" />.

我需要它是因为有时在我的应用程序中,我需要显示当前登录的用户,并显示在我保存之前将执行此操作或此操作的用户。

所以,一个问题:

  • 如何管理以确保用户有权加载应用程序并检索 userId。

非常感谢你!

J4N

4

2 回答 2

0

您应该能够像这样在客户端设置它:

e.InitParams["UserAccount"] = Environment.UserName;

这只是获取用户名,但与您显示的其他示例完全相同。

但是,根据客户端提供的用户名设置权限绝不是一个好主意(本示例和您的示例都这样做)。

于 2011-03-25T07:31:03.300 回答
0

事实上,这似乎是不可能的,我必须创建一个返回当前登录用户的 WCF 服务。

于 2011-03-29T10:58:08.653 回答