Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Security / CookieProtection.cs / 1305376 / CookieProtection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Security
{
using System.Security.Cryptography;
using System.Web.Configuration;
using System.Web.Management;
public enum CookieProtection
{
None, Validation, Encryption, All
}
internal class CookieProtectionHelper
{
internal static string Encode (CookieProtection cookieProtection, byte [] buf, int count)
{
if (cookieProtection == CookieProtection.All || cookieProtection == CookieProtection.Validation)
{
byte[] bMac = MachineKeySection.HashData (buf, null, 0, count);
if (bMac == null)
return null;
if (buf.Length >= count + bMac.Length)
{
Buffer.BlockCopy (bMac, 0, buf, count, bMac.Length);
}
else
{
byte[] bTemp = buf;
buf = new byte[count + bMac.Length];
Buffer.BlockCopy (bTemp, 0, buf, 0, count);
Buffer.BlockCopy (bMac, 0, buf, count, bMac.Length);
}
count += bMac.Length;
}
if (cookieProtection == CookieProtection.All || cookieProtection == CookieProtection.Encryption)
{
buf = MachineKeySection.EncryptOrDecryptData (true, buf, null, 0, count);
count = buf.Length;
}
if (count < buf.Length)
{
byte[] bTemp = buf;
buf = new byte[count];
Buffer.BlockCopy (bTemp, 0, buf, 0, count);
}
return HttpServerUtility.UrlTokenEncode(buf);
}
internal static byte[] Decode (CookieProtection cookieProtection, string data)
{
byte [] buf = HttpServerUtility.UrlTokenDecode(data);
if (buf == null || cookieProtection == CookieProtection.None)
return buf;
if (cookieProtection == CookieProtection.All || cookieProtection == CookieProtection.Encryption)
{
buf = MachineKeySection.EncryptOrDecryptData (false, buf, null, 0, buf.Length);
if (buf == null)
return null;
}
if (cookieProtection == CookieProtection.All || cookieProtection == CookieProtection.Validation)
return MachineKeySection.GetUnHashedData(buf);
return buf;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- KnowledgeBase.cs
- FormatStringEditor.cs
- EdgeProfileValidation.cs
- _ConnectionGroup.cs
- DbRetry.cs
- baseaxisquery.cs
- XpsS0ValidatingLoader.cs
- ViewManager.cs
- SystemEvents.cs
- PageClientProxyGenerator.cs
- SecureStringHasher.cs
- SqlSupersetValidator.cs
- returneventsaver.cs
- newinstructionaction.cs
- TextRangeBase.cs
- RSAOAEPKeyExchangeFormatter.cs
- TimeZone.cs
- Point.cs
- PasswordRecovery.cs
- StyleCollection.cs
- StrokeSerializer.cs
- PermissionRequestEvidence.cs
- ScriptingProfileServiceSection.cs
- AbstractExpressions.cs
- XmlNodeChangedEventManager.cs
- UpDownBase.cs
- DocumentPageView.cs
- SizeConverter.cs
- ChtmlFormAdapter.cs
- BinaryKeyIdentifierClause.cs
- NaturalLanguageHyphenator.cs
- HiddenField.cs
- XmlSchemaCollection.cs
- IgnoreFileBuildProvider.cs
- printdlgexmarshaler.cs
- TreeBuilderBamlTranslator.cs
- InstallerTypeAttribute.cs
- GradientStop.cs
- ListViewTableRow.cs
- AxisAngleRotation3D.cs
- SpecialNameAttribute.cs
- SecurityTokenResolver.cs
- BitmapEffectCollection.cs
- WebServiceTypeData.cs
- MimeFormReflector.cs
- PublisherIdentityPermission.cs
- HostingEnvironmentWrapper.cs
- Quad.cs
- Control.cs
- FieldNameLookup.cs
- MsmqEncryptionAlgorithm.cs
- RayMeshGeometry3DHitTestResult.cs
- SafeArchiveContext.cs
- MultiBindingExpression.cs
- DataGridViewToolTip.cs
- ObjectSecurityT.cs
- PropertyFilterAttribute.cs
- wgx_commands.cs
- MethodSignatureGenerator.cs
- Attributes.cs
- BStrWrapper.cs
- QilUnary.cs
- XmlnsDefinitionAttribute.cs
- TimeoutException.cs
- SelectionItemProviderWrapper.cs
- Triangle.cs
- Point3D.cs
- _CacheStreams.cs
- XmlTypeAttribute.cs
- TitleStyle.cs
- BuilderPropertyEntry.cs
- PrintPreviewGraphics.cs
- SafeRegistryHandle.cs
- PropertyReferenceExtension.cs
- ScriptingAuthenticationServiceSection.cs
- DataGridView.cs
- CharacterHit.cs
- ToolboxItemCollection.cs
- CommandID.cs
- DesignBindingValueUIHandler.cs
- RsaKeyIdentifierClause.cs
- IntMinMaxAggregationOperator.cs
- DirectoryNotFoundException.cs
- BaseDataListPage.cs
- XmlSchemaCollection.cs
- ConfigurationSectionGroup.cs
- webclient.cs
- CachedBitmap.cs
- ResolveNameEventArgs.cs
- StickyNoteContentControl.cs
- Effect.cs
- DefaultPerformanceCounters.cs
- HtmlWindow.cs
- DesignerTransactionCloseEvent.cs
- EmissiveMaterial.cs
- OdbcParameterCollection.cs
- BrowserCapabilitiesCompiler.cs
- MimeMultiPart.cs
- SpecialNameAttribute.cs
- HistoryEventArgs.cs