シンプルなページがあり、ログイン ボタンがあります。このページまたは他のページに再度移動したときに、現在のユーザー ID を取得できるように、プログラムでユーザー ID を設定したいだけです。これについて特別な考慮事項はありますか?
質問する
23312 次
2 に答える
15
簡潔な答え:
//
// Swapped FormsIdentity principal with our own custom IPrincipal
//
HttpContext.Current.User = yourPrincipalFromSomewhere;
//see
//http://www.hanselman.com/blog/SystemThreadingThreadCurrentPrincipalVsSystemWebHttpContextCurrentUserOrWhyFormsAuthenticationCanBeSubtle.aspx
//
// Sync Context Principal with Thread Principal
//
System.Threading.Thread.CurrentPrincipal = System.Web.HttpContext.Current.User;
したがって、ログイン時に、私のチームは IPrincipal (カスタム プリンシパル) をここに配置します。
HttpContext.Current.Cache.Insert
そして、
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
から取得します:
HttpContext.Current.Cache
そして、それをに再接続します:
// Swapped FormsIdentity principal with our own IPrincipal
//
HttpContext.Current.User = cachedPrincipal;
//see
//http://www.hanselman.com/blog/SystemThreadingThreadCurrentPrincipalVsSystemWebHttpContextCurrentUserOrWhyFormsAuthenticationCanBeSubtle.aspx
//
// Sync Context Principal with Thread Principal
//
System.Threading.Thread.CurrentPrincipal = System.Web.HttpContext.Current.User;
「私のチームが行ったのとまったく同じように」と言っていますか? 必ずしも。しかし、それを取り付けるために出会った 2 つの場所を示しています。
そして、それに関するいくつかの情報を示す hanselman リンク。
于 2013-03-06T19:13:03.977 に答える
2
ユーザー ID を保存:
Session["UserId"] = loggedInUserId;
ユーザー ID を取得する
int loggedInUserId = (int)Session["UserId"];
どのような特別な考慮事項について心配していますか? 具体的に。
于 2013-03-06T18:38:04.850 に答える