2011-11-10 2 views
0

방금 ​​저에게 개발되지 않은 프로젝트에서 작업하기 시작했습니다. 일부 기능에 대해 걱정하고 있으며, 항상 사람들로부터 제안을 받고 싶습니다. 너들! C# asp.net 프로젝트 기능

은 로그인 검증 한 후, 로그인 절차는 다음과 같이 구성됩니다

var _ticket = new FormsAuthenticationTicket(1, user.ID, DateTime.Now, DateTime.Now.AddDays(30), true, user.ID); 

string encTicket = FormsAuthentication.Encrypt(_ticket); 
      HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)); 

우리가 볼 수있는 바와 같이, 로그인 한 사용자 (ID, 이름, 전자의 모든 정보를 저장하는 사용자 개체가 mail ...)

제가 처음 보는 문제점은 FormsAuthenticationTicket에서 사용자 ID가 이름으로 전달된다는 것입니다. 그리고 매번 나는이 작업을 수행해야하는 사용자로부터 어떤 정보를 얻고 싶은 :

Item user = Framework.Business.Item.Load(HttpContext.Current.User.Identity.Name); 

이 프로젝트는 마스터 페이지를 사용하고 everypage에 나는 기록의 (ID, 이름, 사진)을 얻기 위해이 작업을 수행해야 user

그러나 적어도 load 메서드는 컬렉션에서 userdate를 가져 오지만이 컬렉션은 사용자 데이터뿐만 아니라 캐시해야하는 모든 데이터 데이터를 저장합니다 (ID는 GUID이므로). 중복 된 것 같아요. 왜냐하면 이런 이유 때문에, 모든 것에 대해 하나의 콜렉션 만 존재하기 때문입니다. 이것이 바로, 또는 나는 그것이

+0

좋아요, 그래서이 5 번 읽었는데 여전히 당신이 찾고있는 것을 이해하지 못합니다. – ChrisBint

+0

이게 옳은지 알고 싶습니다. 아니면 더 잘 만들려면 어떻게해야합니까? – ShadowG

+0

정상적으로 작동한다면 ... 코드 검토를 원하면 [codereview.stackexchange] (http : // codereview)를 방문하십시오. .stackexchange) –

답변

1

더 잘 맞아 만들기 위해 무엇을해야 할 경우

알고 싶습니다. 코드에 대해 걱정할 필요가 없습니다.

Item user = Framework.Business.Item.Load(HttpContext.Current.User.Identity.Name); 

괜찮습니다. HttpContext.Current.User는 모든 요청에서 자동으로 초기화되어야합니다. 그게 전부 야.

+0

글쎄,하지만 그렇게 해두면, 필자는 필자가 필요로하지 않는 정보를로드하고 있다고 생각합니다. 성, 성 등과 같이 ... 그게 내가 걱정하는 이유입니다. 그리고 모든 데이터는 ser 데이터뿐만 아니라 걱정스럽게도 컬렉션에 저장됩니다 ... 나는 세션에서 열광적 인 사용 된 데이터를 저장할 수 있지만 그럴 권리가 있는지는 알지 못합니다. – ShadowG