SessionId的WCF服务认证

时间:2011-12-28 11:58:27

标签: wcf authentication

我想通过会话管理验证WPF客户端。 首先,用户在wpf表单的帮助下将访问WCF服务并生成一个标识ID,如果用户再次想要访问该服务,而不是使用用户名和密码进行身份验证,我们希望使用之前的标识ID进行身份验证。在上一步中生成。

如此善意地建议什么是获得所需输出的最佳方式?

我没有使用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 :(得分:0)

如果你想使用session for wcf service,那么你必须在客户端使用单个代理服务。来自同一个客户端的同一个服务的更多代理将创建一个新的session.Its更好地在客户端使用singleton代理可能会满足你的需要。

请参阅此文件以了解WCF会话和实例管理

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