0

私のブラウザで問題なく動作するWebアプリケーションがあります。しかし、ブラウザ外でインストールした場合、ユーザー名を取得しようとすると、userAccountが辞書に含まれていません。

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

これは、aspx WebページでSilverlightを起動することで提供するため、正常です。

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

アプリケーションで、現在ログに記録されているユーザーを表示し、保存する前にこのユーザーまたはこのアクションを実行するのはこのユーザーであることを表示する必要があるため、これが必要です。

だから、1つの質問:

  • ユーザーがアプリケーションをロードしてuserIdを取得する権利を持っていることを確認する方法。

どうもありがとうございます!

J4N

4

2 に答える 2

0

実際、それは不可能のようです。現在ログインしているユーザーを返す WCF サービスを作成する必要があります。

于 2011-03-29T10:58:08.653 に答える
0

次のようにクライアント側で設定できるはずです。

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

ただし、これはユーザー名のみを取得しますが、表示した他の例とまったく同じです。

ただし、クライアントから提供されたユーザー名に基づいてアクセス許可を設定することは決して良い考えではありません (これとあなたの例の両方がそうです)。

于 2011-03-25T07:31:03.300 に答える