Code:
/ 4.0 / 4.0 / 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.
//------------------------------------------------------------------------------
//
// 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
- ColumnResizeUndoUnit.cs
- DateTimeStorage.cs
- PatternMatcher.cs
- EdmSchemaAttribute.cs
- VisualTreeHelper.cs
- DrawingVisualDrawingContext.cs
- BaseTemplateBuildProvider.cs
- CodeTypeReferenceCollection.cs
- UniqueSet.cs
- HeaderCollection.cs
- DataGridColumn.cs
- ChildDocumentBlock.cs
- Baml2006ReaderContext.cs
- Timer.cs
- ForEachAction.cs
- Model3DGroup.cs
- XmlIlVisitor.cs
- BuildProvidersCompiler.cs
- AnnotationAdorner.cs
- GeometryCollection.cs
- TemplateKey.cs
- Substitution.cs
- Point3DValueSerializer.cs
- SmtpLoginAuthenticationModule.cs
- TimeEnumHelper.cs
- IncrementalCompileAnalyzer.cs
- DataObjectEventArgs.cs
- ScrollItemPattern.cs
- LocatorManager.cs
- ListBindingHelper.cs
- _NegoStream.cs
- DataGridViewSelectedRowCollection.cs
- CodeTypeMember.cs
- UserNamePasswordValidator.cs
- BoundingRectTracker.cs
- XmlConvert.cs
- odbcmetadatacollectionnames.cs
- InputLanguageManager.cs
- PeerContact.cs
- BrowserDefinition.cs
- CookieHandler.cs
- KeyToListMap.cs
- baseaxisquery.cs
- PropertyFilterAttribute.cs
- DWriteFactory.cs
- PictureBox.cs
- ContractReference.cs
- CodeConstructor.cs
- DataRelation.cs
- EventBuilder.cs
- Column.cs
- AssemblyGen.cs
- HttpListenerContext.cs
- WebServiceResponseDesigner.cs
- DataServiceQueryOfT.cs
- SqlXml.cs
- ToolStripContentPanel.cs
- ChainOfResponsibility.cs
- XmlEntityReference.cs
- EventProvider.cs
- ExpressionBuilder.cs
- QuadraticBezierSegment.cs
- SqlConnectionPoolGroupProviderInfo.cs
- TextEditorSpelling.cs
- WebPartEditorOkVerb.cs
- SwitchLevelAttribute.cs
- DefaultHttpHandler.cs
- GridViewUpdateEventArgs.cs
- EventLogLink.cs
- DeviceContext2.cs
- XmlnsPrefixAttribute.cs
- CommandHelpers.cs
- XamlSerializerUtil.cs
- GradientSpreadMethodValidation.cs
- RuleInfoComparer.cs
- UnsafeNativeMethods.cs
- SvcMapFileSerializer.cs
- ConfigurationElementProperty.cs
- SafeLibraryHandle.cs
- Registry.cs
- BezierSegment.cs
- ProviderSettings.cs
- EdmItemCollection.cs
- XmlAtomicValue.cs
- NominalTypeEliminator.cs
- MsmqAppDomainProtocolHandler.cs
- UIAgentMonitorHandle.cs
- QuarticEase.cs
- ConstNode.cs
- DesignColumnCollection.cs
- basemetadatamappingvisitor.cs
- QueryTaskGroupState.cs
- TextTreeText.cs
- TypeDescriptionProviderAttribute.cs
- TextEndOfSegment.cs
- StylusTouchDevice.cs
- isolationinterop.cs
- CacheHelper.cs
- InternalTypeHelper.cs
- CodeAttachEventStatement.cs