Я предложу что-то другое:
Унаследуйте все свои страницы от BasePage.
В этой BasePage создайте пользовательское свойство, что-то вроде этого:
public class BasePage : System.Web.UI.Page
{
public WebUser CurrentUser
{
get
{
WebUser currentUser = HttpContext.Current.Session["WHATEVERKEY"] as WebUser;
if (currentUser == null)
{
currentUser = new WebUser();//and do some processing
HttpContext.Current.Session["WHATEVERKEY"] = currentUser;
}
return currentUser;
}
set
{
HttpContext.Current.Session["WHATEVERKEY"]=value;
}
}
}
После аутентификации пользователя вы можете просто сохранить информацию о себе, выполнив:
this.Page.CurrentUser = userAuthenticated;
И вы можете получить доступ к этому CurrentUser на всех своих страницах в вашем приложении.
Класс WebUser может выглядеть следующим образом:
[Serializable]
public class WebUser
{
public string Name {get;set;}
public string Email {get;set;}
// and so on...
}