/
SecurityStateEncoder.xml
148 lines (142 loc) · 8.36 KB
/
SecurityStateEncoder.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<Type Name="SecurityStateEncoder" FullName="System.ServiceModel.Security.SecurityStateEncoder">
<TypeSignature Language="C#" Value="public abstract class SecurityStateEncoder" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi abstract beforefieldinit SecurityStateEncoder extends System.Object" />
<TypeSignature Language="DocId" Value="T:System.ServiceModel.Security.SecurityStateEncoder" />
<TypeSignature Language="VB.NET" Value="Public MustInherit Class SecurityStateEncoder" />
<TypeSignature Language="F#" Value="type SecurityStateEncoder = class" />
<TypeSignature Language="C++ CLI" Value="public ref class SecurityStateEncoder abstract" />
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ServiceModel.Primitives</AssemblyName>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>6.2.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Private.ServiceModel</AssemblyName>
<AssemblyVersion>4.10.3.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>An abstract class that can be implemented to encode the security state.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This class is used to encode and decode the content of the security context token when a binding with message security that uses a stateful security context token is used. For more information about stateful security context tokens, see [How to: Create a Security Context Token for a Secure Session](/dotnet/framework/wcf/feature-details/how-to-create-a-security-context-token-for-a-secure-session) topic.
Microsoft's version of <xref:System.ServiceModel.Security.SecurityStateEncoder> is <xref:System.ServiceModel.Security.DataProtectionSecurityStateEncoder>. It uses Microsoft's [Windows Data Protection (DPAPI)](/windows/win32/seccng/cng-dpapi) technology to encrypt/decrypt the cookie. You can plug in a different mechanism for encrypting and decrypting cookies by implementing this class.
The encoding of the security state must ensure that the state is signed and encrypted for the service.
This class is used by the server when sending the security state as a cookie in the `SecurityContextToken` issued to the client.
An example implementation of this class is an `X509CertificateSecurityStateEncoder` that uses the service's certificate to sign and encrypt the security state.
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected SecurityStateEncoder ();" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Security.SecurityStateEncoder.#ctor" />
<MemberSignature Language="VB.NET" Value="Protected Sub New ()" />
<MemberSignature Language="C++ CLI" Value="protected:
 SecurityStateEncoder();" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ServiceModel.Primitives</AssemblyName>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Private.ServiceModel</AssemblyName>
<AssemblyVersion>4.10.3.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName Language="C#">[System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")>]</AttributeName>
</Attribute>
</Attributes>
<Parameters />
<Docs>
<summary>Initializes a new instance of the <see cref="T:System.ServiceModel.Security.SecurityStateEncoder" /> class.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="DecodeSecurityState">
<MemberSignature Language="C#" Value="protected internal abstract byte[] DecodeSecurityState (byte[] data);" />
<MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig newslot virtual instance unsigned int8[] DecodeSecurityState(unsigned int8[] data) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Security.SecurityStateEncoder.DecodeSecurityState(System.Byte[])" />
<MemberSignature Language="VB.NET" Value="Protected Friend MustOverride Function DecodeSecurityState (data As Byte()) As Byte()" />
<MemberSignature Language="F#" Value="abstract member DecodeSecurityState : byte[] -> byte[]" Usage="securityStateEncoder.DecodeSecurityState data" />
<MemberSignature Language="C++ CLI" Value="protected public:
 abstract cli::array <System::Byte> ^ DecodeSecurityState(cli::array <System::Byte> ^ data);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ServiceModel.Primitives</AssemblyName>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Private.ServiceModel</AssemblyName>
<AssemblyVersion>4.10.3.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Byte[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="data" Type="System.Byte[]" />
</Parameters>
<Docs>
<param name="data">Security data.</param>
<summary>Decodes the security state.</summary>
<returns>A byte array that represents the security state.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="EncodeSecurityState">
<MemberSignature Language="C#" Value="protected internal abstract byte[] EncodeSecurityState (byte[] data);" />
<MemberSignature Language="ILAsm" Value=".method familyorassemblyhidebysig newslot virtual instance unsigned int8[] EncodeSecurityState(unsigned int8[] data) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Security.SecurityStateEncoder.EncodeSecurityState(System.Byte[])" />
<MemberSignature Language="VB.NET" Value="Protected Friend MustOverride Function EncodeSecurityState (data As Byte()) As Byte()" />
<MemberSignature Language="F#" Value="abstract member EncodeSecurityState : byte[] -> byte[]" Usage="securityStateEncoder.EncodeSecurityState data" />
<MemberSignature Language="C++ CLI" Value="protected public:
 abstract cli::array <System::Byte> ^ EncodeSecurityState(cli::array <System::Byte> ^ data);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ServiceModel.Primitives</AssemblyName>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Private.ServiceModel</AssemblyName>
<AssemblyVersion>4.10.3.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Byte[]</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="data" Type="System.Byte[]" />
</Parameters>
<Docs>
<param name="data">The security state data.</param>
<summary>Encodes the security state.</summary>
<returns>A byte array that results from encoding the security state.</returns>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>