Веб-сервисы ASP.net

Я использую веб-сервис, который устанавливает объект Thread.CurrentPrincipal при входе в систему и вскоре позже, когда другой веб-метод того же веб-сервиса обращается к Thread.CurrentPrincipal, его другой / сбрасывает

Может кто-нибудь сказать мне, если это ожидается, или различные вызовы веб-метода из одного и того же клиента могут получить доступ к одному и тому же объекту Thread.CurrentPrincipal

Спасибо

3 ответа

Как только вы перестаете использовать поток, он возвращается в пул потоков.

Следующий вызов возьмет поток из пула потоков, но вы не можете контролировать, какой из них вы получите.

Вам необходимо отправить информацию о том, какой пользователь совершает звонок, с каждым запросом.

Если вы используете встроенную проверку подлинности ASP .NET для своего веб-сайта, а затем просто вызываете веб-службу с веб-страницы, вы можете включить переменные сеанса и информацию о контексте пользователя в методах веб-службы с помощью украшения. Как это:

[WebMethod(EnableSession=true)]
public void MyWebMethod()
{
    string mySessionVar = HttpContext.Current.Session["sessionVar"].ToString();
    IPrincipal currentUser = HttpContext.Current.User;
    ...
}

Если это не решит вашу проблему, сообщите нам, для чего вы используете объект Thread.CurrentPrincipal (что вы извлекаете из объекта Thread.CurrentPrincipal). Возможно, есть другое решение.

Ожидается, что каждый новый веб-запрос на самом деле новый поток. И каждый веб-запрос сбрасывает такие вещи, как CurrentThread, CurrentCulture и так далее.

Что вы пытаетесь сделать, это сеанс аутентификации. Есть много возможных решений. Но чтобы предложить что-то, я должен указать технологию, которую вы используете.

Например, службы ASP.NET ASMX могут использовать проверку подлинности с помощью форм. Также они знают о ASP.NET Session.

С WCF вы можете включить поддержку ASP.NET, так что у вас будет то же самое, что и для ASP.NET ASMX Services. Но вы также можете использовать службу аутентификации Windows Communication Foundation.

В любом случае нужно больше информации от вас.

Другие вопросы по тегам