DLL を呼び出す Web アプリケーションがあります。この DLL は Web サービスからデータの一部を取得します。私がやりたいのは、ユーザーが Web アプリにログインしたときです。現在、そのユーザー名をセッション変数に保存しています。私の webService には、次のような WebMethod があります。
[WebMethod(EnableSession = true)]
public string getLoggedInUsername()
{
SessionManager session = new SessionManager();
return session.Username;
}
これは正常に動作しますが、DLL から Web サービスにアクセスすると、返される値は常に NULL になります。これは、コンソール アプリが Web サービスに接続するときに新しいセッションが初期化されるためです。ログインしたユーザー名を保存し、Web サービスを介して dll に渡す方法はありますか? 私の webapp はさまざまなユーザーを処理する必要があるため、Application Get/Set を使用することは適切な決定ではありません。誰でも私を正しい方向に向けることができますか?
SessionManager クラスには以下が含まれます。
public string Username
{
get
{
return (string)HttpContext.Current.Session["Username"];
}
set
{
HttpContext.Current.Session["Username"] = value;
}
}
ユーザーがアプリケーションにログインした後 (私は asp.net メンバーシップを使用しています): 次の方法でユーザー名をセッション変数に割り当てます。
SessionManager session = new SessionManager();
session.Username = User.Identity.Name;
ありがとう。