0

これは ASP.NET フォーム プロジェクトです。ユーザーが(ログインページで)ユーザー名とパスワードを入力すると、プロジェクトのどのページのコードでも取得できるようにユーザー名を保存したいと思います。セッション変数を介してそれを行うことができることを知っています。
しかし、Get Set を使用して Static Public クラスを作成し、そこに値を格納して、このクラスを使用して取得することは可能ですか?

4

2 に答える 2

0

マスターページを使用している場合は、そのマスターページを使用している任意のページにアクセスできるように、その隠し値にその情報を格納する隠しフィールドを作成します。

于 2013-11-09T17:27:36.987 に答える
0

静的クラスはアプリ内のインスタンス/セッション間で共有されます。つまり、競合状態に似た状態になる可能性があります。たとえば、User_A からの要求は、User_B によって静的クラスに設定された値を読み取ることができます。(このSOの回答を参照してください)

ヒップから撮影すると、ユーザーの詳細に簡単にアクセスできるようにする、ユーザー情報のラッパー/抽象化クラスを作成する方が簡単かもしれません。何かのようなもの:

public class UserDetails{

   public string Name;
   public string Age;
   public string Gender;

   public UserDetails(HttpContext context){
      this.Name   = context.User.Identity.Name;
      this.Age    = ...;
      this.Gender = ...;

      // Alternatively, you could perform your own data access to
      // get/set these details. It depends on how you're storing your
      // users' info.
   }
}

次に、コードビハインドで...

UserDetails userDetails = new UserDetails(context.Current);
Response.Write(userDetails.Name); // user's name
Response.Write(userDetails.Age); // user's age
...
于 2013-11-09T17:37:31.427 に答える