0
我有一个WCF服务这样的代码:WCF每个实例
[ServiceContract]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple)]
public class SomeService
{
public string Password { [OperationContract] get; [OperationContract] set; }
public void CheckPassword()
{
if (Password == null || Password != "password")
throw new FaultException("Invalid Password");
}
[OperationContract]
public string SomeMethod()
{
this.CheckPassword();
return "Some Data";
}
}
而且客户端的Windows应用程序消耗这样的:
public class ClientClass
{
public ClientClass()
{
STASomeService.Value.SomeMethod();
}
}
public class ClientClass
{
public ClientClass()
{
STASomeService.Value.set_Password("password");
}
}
如何重置价值SomeService.Password
每当SomeService
类被实例化?我不希望攻击者访问我的服务方法,但是当实际客户端设置密码时,密码会保留在每个服务调用的SomeService.Password
属性中。但我想保留每个实例的Password
值,因为客户端需要这个值。
我的代码是在C#中,框架4,内置VS2010 Pro。
请帮助。提前致谢。
感谢您的回答。这是因为我将它作为服务引用使用,并且服务的InstanceContextMode设置为Single,所以值不会改变。我希望该值不会更改每个服务实例。请帮忙。 – 2012-03-08 02:22:06
更新了我的(现已删除的评论)详细信息的问题,希望它能帮助您。 – 2012-03-08 03:01:08