Аутентификация службы WCF по SessionId - PullRequest
1 голос
/ 28 декабря 2011

Я хочу аутентифицировать клиента WPF через Session Management.Во-первых, пользователь с помощью формы wpf получит доступ к сервису WCF и сгенерирует идентификатор доступа, и если пользователь снова захочет получить доступ к сервису, вместо аутентификации с использованием имени пользователя и пароля мы хотели бы пройти проверку подлинности, используя идентификатор сеанса, который былсгенерировано на предыдущем шаге.

Так что, пожалуйста, предложите, какой наилучший способ получить желаемый результат?

Я не использую файл web.config.Вместо этого я использую часть конфигурации в коде C #, которая приведена ниже: -

[ServiceContract(SessionMode=SessionMode.Required)] 
public interface Iexecute { 
    [OperationContract] 
    string loginUserName(); 

    [OperationContract] 
    string LoginPassword(string SessionId); 
} 

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)] 
public class Execute : Iexecute, IDisposable

Другая часть конфигурации: -

ServiceHost host = new ServiceHost(typeof(Execute), new Uri("net.tcp://localhost:4233"))) { host.AddServiceEndpoint(typeof(Iexecute), new NetTcpBinding(), "Execute"); 
NetTcpBinding tcpsessionBinding = new NetTcpBinding(); tcpsessionBinding.ReliableSession.Enabled = true; tcpsessionBinding.ReliableSession.InactivityTimeout = TimeSpan.FromMinutes(25); 

1 Ответ

0 голосов
/ 28 декабря 2011

Если вы хотите использовать сессию для службы wcf, тогда вы должны использовать один прокси-сервер для службы на стороне клиента. Один дополнительный прокси-сервер от одного и того же клиента для той же службы создаст новый сеанс. Лучше использовать синглтон-прокси в клиенте ваша потребность.

См. Эту ссылку для управления сеансами и экземплярами WCF

http://msdn.microsoft.com/en-us/magazine/cc163590.aspx#S2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...