2010-06-03 Jb Evain <jbevain@novell.com>
[mcs.git] / class / System.ServiceModel / System.ServiceModel.Security.Tokens / SecureConversationSecurityTokenAuthenticator.cs
blob74fa2e6ef97ddab5e9e25e5b3b8071e7f5b9b973
1 //
2 // SecureConversationSecurityTokenAuthenticator.cs
3 //
4 // Author:
5 // Atsushi Enomoto <atsushi@ximian.com>
6 //
7 // Copyright (C) 2007 Novell, Inc. http://www.novell.com
8 //
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:
16 //
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 //
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)
50 this.req = r;
51 this.sc_auth = scAuth;
52 this.sc_res = scResolver;
53 comm = new WsscAuthenticatorCommunicationObject ();
56 public override AuthenticatorCommunicationObject Communication {
57 get { return comm; }
60 [MonoTODO]
61 protected override bool CanValidateTokenCore (SecurityToken token)
63 throw new NotImplementedException ();
66 [MonoTODO]
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.");
100 EnsureProperties ();
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)
118 if (proxy != null)
119 proxy.Close ();
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 ();