У меня есть служба 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 #, framework 4, сборка в VS2010 Pro.
Пожалуйста, помогите.Заранее спасибо.