У меня есть WCF службы кода:WCF Per Instance
[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";
}
}
И приложение клиента окна потребляющий это следующим образом:
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», поэтому значение не изменится. Я хочу, чтобы значение не менялось на экземпляр службы. Пожалуйста помоги. –
Обновленный вопрос с деталями из моего (теперь удалённого комментария), надеюсь, это поможет вам. –