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