2 // SecureConversationSecurityTokenAuthenticator.cs
5 // Atsushi Enomoto <atsushi@ximian.com>
7 // Copyright (C) 2007 Novell, Inc. http://www.novell.com
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 using System
.Collections
.ObjectModel
;
30 using System
.IdentityModel
.Policy
;
31 using System
.IdentityModel
.Selectors
;
32 using System
.IdentityModel
.Tokens
;
33 using System
.ServiceModel
.Channels
;
34 using System
.ServiceModel
.Description
;
36 namespace System
.ServiceModel
.Security
.Tokens
38 class SecureConversationSecurityTokenAuthenticator
: CommunicationSecurityTokenAuthenticator
40 SecurityTokenRequirement req
;
41 SecurityContextSecurityTokenAuthenticator sc_auth
;
42 SecurityContextSecurityTokenResolver sc_res
;
43 WsscAuthenticatorCommunicationObject comm
;
45 public SecureConversationSecurityTokenAuthenticator (
46 SecurityTokenRequirement r
,
47 SecurityContextSecurityTokenAuthenticator scAuth
,
48 SecurityContextSecurityTokenResolver scResolver
)
51 this.sc_auth
= scAuth
;
52 this.sc_res
= scResolver
;
53 comm
= new WsscAuthenticatorCommunicationObject ();
56 public override AuthenticatorCommunicationObject Communication
{
61 protected override bool CanValidateTokenCore (SecurityToken token
)
63 throw new NotImplementedException ();
67 protected override ReadOnlyCollection
<IAuthorizationPolicy
> ValidateTokenCore (SecurityToken token
)
69 throw new NotImplementedException ();
73 class WsscAuthenticatorCommunicationObject
: AuthenticatorCommunicationObject
75 WSTrustSecurityTokenServiceProxy proxy
;
77 protected internal override TimeSpan DefaultCloseTimeout
{
78 get { throw new NotImplementedException (); }
81 protected internal override TimeSpan DefaultOpenTimeout
{
82 get { throw new NotImplementedException (); }
85 public override Message
ProcessNegotiation (Message request
)
87 throw new NotImplementedException ();
90 protected override void OnAbort ()
92 throw new NotImplementedException ();
95 protected override void OnOpen (TimeSpan timeout
)
97 if (State
== CommunicationState
.Opened
)
98 throw new InvalidOperationException ("Already opened.");
102 proxy
= new WSTrustSecurityTokenServiceProxy (
103 IssuerBinding
, IssuerAddress
);
106 protected override IAsyncResult
OnBeginOpen (TimeSpan timeout
, AsyncCallback callback
, object state
)
108 throw new NotImplementedException ();
111 protected override void OnEndOpen (IAsyncResult result
)
113 throw new NotImplementedException ();
116 protected override void OnClose (TimeSpan timeout
)
122 protected override IAsyncResult
OnBeginClose (TimeSpan timeout
, AsyncCallback callback
, object state
)
124 throw new NotImplementedException ();
127 protected override void OnEndClose (IAsyncResult result
)
129 throw new NotImplementedException ();