Merge pull request #4453 from lambdageek/bug-49721
[mono.git] / mcs / class / System.IdentityModel / System.IdentityModel.Tokens / GenericXmlSecurityToken.cs
1 //
2 // GenericXmlSecurityToken.cs
3 //
4 // Author:
5 //      Atsushi Enomoto <atsushi@ximian.com>
6 //
7 // Copyright (C) 2006 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.
27 //
28 using System;
29 using System.Collections.ObjectModel;
30 using System.Net;
31 using System.Xml;
32 using System.IdentityModel.Policy;
33 using System.Security.Principal;
34
35 namespace System.IdentityModel.Tokens
36 {
37         public class GenericXmlSecurityToken : SecurityToken
38         {
39                 XmlElement xml;
40                 SecurityToken proof_token;
41                 DateTime from, to;
42                 SecurityKeyIdentifierClause int_tokenref, ext_tokenref;
43                 ReadOnlyCollection<IAuthorizationPolicy> auth_policies;
44
45                 public GenericXmlSecurityToken (
46                         XmlElement tokenXml,
47                         SecurityToken proofToken,
48                         DateTime effectiveTime,
49                         DateTime expirationTime,
50                         SecurityKeyIdentifierClause internalTokenReference,
51                         SecurityKeyIdentifierClause externalTokenReference,
52                         ReadOnlyCollection<IAuthorizationPolicy> authorizationPolicies)
53                 {
54                         xml = tokenXml;
55                         proof_token = proofToken;
56                         from = effectiveTime;
57                         to = expirationTime;
58                         int_tokenref = internalTokenReference;
59                         ext_tokenref = externalTokenReference;
60                         auth_policies = authorizationPolicies;
61                 }
62
63                 [MonoTODO] // verify
64                 public override string Id {
65                         get { return proof_token.Id; }
66                 }
67
68                 public XmlElement TokenXml {
69                         get { return xml; } 
70                 }
71
72                 public SecurityToken ProofToken { 
73                         get { return proof_token; } 
74                 }
75
76                 public override DateTime ValidFrom { 
77                         get { return from; } 
78                 }
79                 public override DateTime ValidTo { 
80                         get { return to; } 
81                 }
82
83                 public SecurityKeyIdentifierClause InternalTokenReference { 
84                         get { return int_tokenref; } 
85                 }
86
87                 public SecurityKeyIdentifierClause ExternalTokenReference { 
88                         get { return ext_tokenref; } 
89                 }
90
91                 public ReadOnlyCollection<IAuthorizationPolicy> AuthorizationPolicies {
92                         get { return auth_policies; }
93                 }
94
95                 [MonoTODO]
96                 public override ReadOnlyCollection<SecurityKey> SecurityKeys {
97                         get { throw new NotImplementedException (); }
98                 }
99
100                 [MonoTODO]
101                 public override bool CanCreateKeyIdentifierClause<T> ()
102                 {
103                         throw new NotImplementedException ();
104                 }
105
106                 [MonoTODO]
107                 public override T CreateKeyIdentifierClause<T> ()
108                 {
109                         throw new NotImplementedException ();
110                 }
111
112                 [MonoTODO]
113                 public override bool MatchesKeyIdentifierClause (
114                         SecurityKeyIdentifierClause keyIdentifierClause)
115                 {
116                         throw new NotImplementedException ();
117                 }
118         }
119 }