私はこのような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
クラスがインスタンス化されるたびにSomeService.Password
の?攻撃者が私のサービスメソッドにアクセスするのは望ましくありませんが、実際のクライアントがパスワードを設定すると、パスワードはすべてのサービスコールのSomeService.Password
プロパティにとどまります。しかし、クライアントが必要とするため、インスタンスごとにPassword
の値を保持したい。
私のコードはC#、フレームワーク4、VS2010 Proでビルドされています。
助けてください。前もって感謝します。
お返事ありがとうございます。サービス参照としてそれを消費し、サービスの 'InstanceContextMode'が' Single'に設定され、値が変更されないためです。サービスのインスタンスごとに値が変更されないようにします。助けてください。 –
質問を詳細(私は今削除されたコメント)から更新しました、うまくいけばあなたを助けるでしょう。 –