Мне нужно иметь возможность легко получить имя пользователя для множества запросов, которые мы запускаем в сборке вне проекта MVC. Я бы просто добавил параметр для всех вызовов, но их буквально сотни.Параллельный доступ к HttpContext извне библиотеки
Мой коллега посоветовал мне передать статическую ссылку на HttpContext (предположительно в OnApplicationStarted или что-то в этом роде) и получить отсюда имя пользователя.
HttpContext всегда имеет информацию, относящуюся к сеансу текущего пользователя. Моя забота об этом заключается в том, что если мой объект (который существует в отдельной сборке) не узнает, какой пользователь именно извлекает информацию, и что, хотя это может работать для одного пользователя, оно будет вызывать неправильное имя пользователя как больше пользователи начинают получать доступ к системе.
Является ли это жизнеспособным способом идентификации имени пользователя?
Как HttpContext знает, какой пользователь является текущим пользователем? Этот механизм разорван вне проекта?
Если вы можете использовать Session во внешней библиотеке, тогда вы должны поместить имя пользователя в сеанс и получить к нему доступ оттуда. Все означает, что вы выбираете информацию о пользователе из сеанса. –
@AnkushJain: Интересно отметить, что вы думаете, что он должен работать. Мой страх в том, что, поскольку это будет статический объект (т. Е. Только один для всех пользователей), когда пользователь будет вытащен, он может быть для кого-то другого. – micahhoover
Я не говорю, чтобы создать статическую переменную. Я прошу использовать переменные сеанса. И сеансы всегда зависят от пользователя. –