Ответ 1
В принципе, как я могу получить доступ к имени зарегистрированных пользователей извне контроллера?
Это зависит от того, где вы хотите получить к ним доступ. Если у вас нет доступа к HttpContext
, вы всегда можете попробовать HttpContext.Current.User
и молитесь, чтобы по какой-то причине он не был пустым, например, для другого потока или чего-то еще. Это особенно заметно с SignalR, который зависит от задач и много асинхронной обработки. Если он находится внутри концентратора SignalR, у вас есть доступ к пользователю:
public class Chat: Hub
{
public void Foo()
{
string username = Context.User.Identity.Name;
}
}
Лично я бы не рекомендовал вам использовать HttpContext.Current
. В зависимости от того, что именно вы пытаетесь достичь, и где я гарантирую вам, что есть лучшие способы.