認証クッキーに必要な情報を入れておくと便利です。つまり、機密情報を置く場合は、少なくとも暗号化する必要がありますが、機密情報をそこに置くことをお勧めします。
Forms.SetAuthCookie (UserName + "|" + UserId, true);
次に、ユーザー名またはユーザーIDが必要なときはいつでもそうです。単にクッキーをロードし、必要な値を解析してください。
もう一度、これは特に上記の通りです。です。つまり、可能です。あなたは、バックアウトデータをプルするアクセサメソッドを作成する必要があります。
public int CurrentUserId
{
get
{
int userId = 0;
if (HttpContext.Current.Request.IsAuthenticated)
{
userId = Convert.ToInt32(HttpContext.Current.User.Identity.Name.Split('|')[1]);
}
return userId;
}
}
public string CurrentUserName
{
get
{
string userName = string.Empty;
if (HttpContext.Current.Request.IsAuthenticated)
{
userName = HttpContext.Current.User.Identity.Name.Split('|')[0];
}
return userName;
}
}
ありがとう!これはまさに私が探していたものです! FormsAuthentication.SetAuthCookieの動作が重複しているようですが、asp.net 3.5(私はリフレクタを使用する時間がありません)と少ししか違いがありません。 Cookieに任意のデータを添付することができます(名前だけでなく)。 ありがとうございました! – Eden
フィードバックの項目を接続することはもはや悲しいことではありません。このテクニックが何であるか簡単に説明して欲しいですか? –
.NET 4.xでは、新しいチケットを作成するときにFormsAuthentication.Timeoutを使用する方法は次のようになります。DateTime.Now.Add(FormsAuthentication.Timeout) –