You must hide the "current user" behind the abstraction:
public interface ICurrentUser { string Name { get; } }
This abstraction needs to be defined at the business level, and you need to create a specific ASP.NET implementation that you put in the Root of Composition :
public class AspNetCurrentUser : ICurrentUser { public string Name { get { return HttpContext.Current.Session["user"]; } } }
Now your business-level object may depend on the ICurrentUser interface, and in Unity you can register the implementation as follows:
container.RegisterType<ICurrentUser, AspNetCurrentUser>();
source share