public object Execute(object system) { IPrincipal saved = Thread.CurrentPrincipal; Thread.CurrentPrincipal = _principal; try { return _command.Execute(system); } finally { Thread.CurrentPrincipal = saved; } } }