//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Security
{
using System.IdentityModel.Claims;
using System.IdentityModel.Tokens;
using System.ServiceModel;
using System.IdentityModel.Policy;
using System.Security.Principal;
using System.Security.Cryptography.X509Certificates;
using System.Collections.Generic;
using System.ServiceModel.Channels;
using System.ServiceModel.Security.Tokens;
using System.Net;
using System.Diagnostics;
class IssuanceTokenProviderState : IDisposable
{
bool isNegotiationCompleted = false;
GenericXmlSecurityToken serviceToken;
string context;
EndpointAddress targetAddress;
EndpointAddress remoteAddress;
public IssuanceTokenProviderState() { }
public bool IsNegotiationCompleted
{
get
{
return this.isNegotiationCompleted;
}
}
public GenericXmlSecurityToken ServiceToken
{
get
{
CheckCompleted();
return this.serviceToken;
}
}
public EndpointAddress TargetAddress
{
get
{
return this.targetAddress;
}
set
{
this.targetAddress = value;
}
}
public EndpointAddress RemoteAddress
{
get
{
return this.remoteAddress;
}
set
{
this.remoteAddress = value;
}
}
public string Context
{
get
{
return this.context;
}
set
{
this.context = value;
}
}
public virtual void Dispose() { }
public void SetServiceToken(GenericXmlSecurityToken serviceToken)
{
if (this.IsNegotiationCompleted)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.NegotiationIsCompleted)));
}
this.serviceToken = serviceToken;
this.isNegotiationCompleted = true;
}
void CheckCompleted()
{
if (!this.IsNegotiationCompleted)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.NegotiationIsNotCompleted)));
}
}
}
}
|