당신이 원하는대로 인증 쿠키에 넣을 수 있습니다. 즉, 민감한 정보를 넣는 경우 적어도 암호화해야하지만 중요한 정보를 입력하지 않는 것이 좋습니다. 다음과 같이 할 수 있습니다 :
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 (저는 리플렉터를 사용할 시간이 없습니다)입니다. (이름뿐 아니라) 쿠키에 임의의 데이터를 첨부 할 수 있습니다. 다시 한번 감사드립니다! – Eden
그 의견 보내기 항목은 더 이상 슬프게도 없습니다. 그 기술이 무엇인지 간략하게 설명했으면 좋겠습니다. –
.NET 4.x에서 새 티켓을 만들 때 FormsAuthentication.Timeout을 사용하는 방법은 다음과 같습니다. DateTime.Now.Add (FormsAuthentication.Timeout) –