사용자가 로그인 페이지에서 로그인하는 asp.net 응용 프로그램이 있습니다. Employee 객체를 만들고 해당 페이지의 button_click 이벤트에 loginID를 저장합니다.asp.net 응용 프로그램 전체에 직원 개체 유지
Employee 개체를 매개 변수로 매번 전달하지 않고도 응용 프로그램 전체에서 Employee 개체를 유지하려면 어떻게해야합니까?
사용자가 로그인 페이지에서 로그인하는 asp.net 응용 프로그램이 있습니다. Employee 객체를 만들고 해당 페이지의 button_click 이벤트에 loginID를 저장합니다.asp.net 응용 프로그램 전체에 직원 개체 유지
Employee 개체를 매개 변수로 매번 전달하지 않고도 응용 프로그램 전체에서 Employee 개체를 유지하려면 어떻게해야합니까?
이는 세션 범위 항목을 저장하는 Session State 인 경향이 있습니다.
세션을 넘어서 직원 개체를 저장하면 실제로 개체가 관련된 사용자가 더 이상 사이트를 사용하지 않으므로 개체를 메모리에 유지하는 데 잠재적으로 무의미 해집니다.
전체 응용 프로그램에 실제로 적용하려는 경우 Application State을 살펴볼 가치가 있습니다.
아마도 Session data을 사용하고 싶을 것입니다.
주어진 세션과 연결된 객체를 얻는 쉬운 방법이지만주의 사항이 있습니다 (데이터 저장소에 따라 성능에 영향을 줄 수 있습니다. 지속성있는 객체의 크기/복잡성은 얼마나 많은 동시 사용자를 다루고 있는지). 클래스 감안할 때
은 다음과 같습니다 세션이 저장
[Serializable]
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
:
protected void DoLogin()
{
Employee employee = new Employee()
{
Id = 1,
FirstName = "John",
LastName = "Smith"
};
// save it to session
Session.Add("Employee", employee);
}
세션에서 그것을 얻을. "직원"에게 캐스팅해야 함을 알립니다.
protected Employee GetEmployee()
{
if (Session["Employee"] != null)
{
// needs to be cast
return (Employee)Session["Employee"];
}
else
{
return null;
}
}
일반적으로 사용하기 쉽도록이 항목을 속성에 포함합니다. 당신은 보통 세션에서 이와 같은 객체를 필요로하지 않을 것입니다 ... 아마도 당신이 찾고있는 것은 : ASP.NET MVC - Set custom IIdentity or IPrincipal
look global.asax –