It would be alot simpler to create a singleton object to store your logged in user...
public class UserAccount
{
private static User _currentUser;
private UserAccount() {}
public static User CurrentUser
{
set
{
_currentUser = value;
}
get
{
return _currentUser;
}
}
}
Then after login you would do this...
// Set the current User
UserAccount.CurrentUser = user;
Then in any class you need the currently logged in user... you could do...
var user = UserAccount.CurrentUser;
Obviously you would need to implement your own business rules around this but the concept is what I am trying to get across here, a static single instance of the user that can be accessed from anywhere.