Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / DataProtectionSecurityStateEncoder.cs / 1 / DataProtectionSecurityStateEncoder.cs
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------
namespace System.ServiceModel.Security
{
using System.Text;
using System.Security.Cryptography;
public class DataProtectionSecurityStateEncoder : SecurityStateEncoder
{
byte[] entropy;
bool useCurrentUserProtectionScope;
public DataProtectionSecurityStateEncoder()
: this(true)
{
// empty
}
public DataProtectionSecurityStateEncoder(bool useCurrentUserProtectionScope)
: this(useCurrentUserProtectionScope, null)
{ }
public DataProtectionSecurityStateEncoder(bool useCurrentUserProtectionScope, byte[] entropy)
{
this.useCurrentUserProtectionScope = useCurrentUserProtectionScope;
if (entropy == null)
{
this.entropy = null;
}
else
{
this.entropy = DiagnosticUtility.Utility.AllocateByteArray(entropy.Length);
Buffer.BlockCopy(entropy, 0, this.entropy, 0, entropy.Length);
}
}
public bool UseCurrentUserProtectionScope
{
get
{
return this.useCurrentUserProtectionScope;
}
}
public byte[] GetEntropy()
{
byte[] result = null;
if (this.entropy != null)
{
result = DiagnosticUtility.Utility.AllocateByteArray(this.entropy.Length);
Buffer.BlockCopy(this.entropy, 0, result, 0, this.entropy.Length);
}
return result;
}
public override string ToString()
{
StringBuilder result = new StringBuilder();
result.Append(this.GetType().ToString());
result.AppendFormat("{0} UseCurrentUserProtectionScope={1}", Environment.NewLine, this.useCurrentUserProtectionScope);
result.AppendFormat("{0} Entropy Length={1}", Environment.NewLine, (this.entropy == null) ? 0 : this.entropy.Length);
return result.ToString();
}
protected internal override byte[] DecodeSecurityState(byte[] data)
{
return ProtectedData.Unprotect(data, this.entropy, (this.useCurrentUserProtectionScope) ? DataProtectionScope.CurrentUser : DataProtectionScope.LocalMachine);
}
protected internal override byte[] EncodeSecurityState(byte[] data)
{
return ProtectedData.Protect(data, this.entropy, (this.useCurrentUserProtectionScope) ? DataProtectionScope.CurrentUser : DataProtectionScope.LocalMachine);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PageThemeBuildProvider.cs
- Package.cs
- serverconfig.cs
- TextSerializer.cs
- SafeNativeMethods.cs
- KnownTypeAttribute.cs
- LogConverter.cs
- PropertyMap.cs
- ExpressionCopier.cs
- FigureParaClient.cs
- AppSettingsSection.cs
- TextFindEngine.cs
- DSASignatureFormatter.cs
- SerializerDescriptor.cs
- CutCopyPasteHelper.cs
- PropertyConverter.cs
- PropertyGridEditorPart.cs
- NumericUpDown.cs
- NavigationEventArgs.cs
- HtmlTableCellCollection.cs
- DataGridViewCellCollection.cs
- ToolTipService.cs
- RoutedEvent.cs
- TextClipboardData.cs
- SBCSCodePageEncoding.cs
- AliasGenerator.cs
- FixedDocumentSequencePaginator.cs
- XmlBinaryReader.cs
- LayoutEvent.cs
- XPathQilFactory.cs
- DependencyProperty.cs
- PreviewPageInfo.cs
- CircleHotSpot.cs
- hwndwrapper.cs
- PhonemeEventArgs.cs
- SqlDeflator.cs
- WebServiceReceiveDesigner.cs
- ClientApiGenerator.cs
- JsonSerializer.cs
- FormViewInsertEventArgs.cs
- ToolboxControl.cs
- DrawingBrush.cs
- InputProcessorProfiles.cs
- SwitchAttribute.cs
- WindowsFont.cs
- XmlElementCollection.cs
- QuaternionAnimationBase.cs
- ElementsClipboardData.cs
- CustomMenuItemCollection.cs
- HostExecutionContextManager.cs
- MappingModelBuildProvider.cs
- HtmlTernaryTree.cs
- ServiceOperationParameter.cs
- ModelUIElement3D.cs
- DataBindingCollection.cs
- SqlRecordBuffer.cs
- BamlLocalizer.cs
- coordinatorfactory.cs
- dataprotectionpermission.cs
- InputProcessorProfiles.cs
- ToolStripMenuItem.cs
- UnsafeNativeMethods.cs
- autovalidator.cs
- IImplicitResourceProvider.cs
- cookieexception.cs
- GetRecipientRequest.cs
- SspiWrapper.cs
- UrlAuthFailedErrorFormatter.cs
- WebServiceFault.cs
- CodeValidator.cs
- ChtmlPhoneCallAdapter.cs
- BinaryFormatterWriter.cs
- JournalEntryStack.cs
- LogRecordSequence.cs
- FullTextBreakpoint.cs
- GetWinFXPath.cs
- _ProxyChain.cs
- IriParsingElement.cs
- SHA1Managed.cs
- DataDocumentXPathNavigator.cs
- Panel.cs
- Misc.cs
- SafeProcessHandle.cs
- InvalidCommandTreeException.cs
- OneOfElement.cs
- OdbcConnection.cs
- GiveFeedbackEvent.cs
- SoapFault.cs
- PolicyException.cs
- ValidationError.cs
- ListControl.cs
- InputLanguageCollection.cs
- RSAPKCS1KeyExchangeFormatter.cs
- GeometryGroup.cs
- NativeActivityMetadata.cs
- DesignDataSource.cs
- AtomMaterializer.cs
- UxThemeWrapper.cs
- Membership.cs
- HotSpotCollectionEditor.cs