1

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;

ありがとう。

4

1 に答える 1