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
- FastEncoder.cs
- ViewService.cs
- NamespaceImport.cs
- XmlSchemaAppInfo.cs
- XmlAtomicValue.cs
- COSERVERINFO.cs
- LinqDataSourceSelectEventArgs.cs
- PointConverter.cs
- ModuleBuilderData.cs
- SubMenuStyle.cs
- CheckBoxBaseAdapter.cs
- HostingEnvironmentException.cs
- DefaultPropertyAttribute.cs
- TextBox.cs
- TabRenderer.cs
- UnknownBitmapEncoder.cs
- MultiView.cs
- BinarySerializer.cs
- CryptoConfig.cs
- FontCollection.cs
- BitmapEffectDrawing.cs
- AssociationSetEnd.cs
- ToolStripSeparatorRenderEventArgs.cs
- ParserOptions.cs
- Base64Encoder.cs
- jithelpers.cs
- DateTimeConverter2.cs
- ImageSource.cs
- codemethodreferenceexpression.cs
- ManagementEventArgs.cs
- CodeConstructor.cs
- TemplateComponentConnector.cs
- ScriptComponentDescriptor.cs
- GeneratedView.cs
- TextEmbeddedObject.cs
- AuthenticationModulesSection.cs
- LocalizationCodeDomSerializer.cs
- BaseConfigurationRecord.cs
- FlowDocumentPaginator.cs
- InfoCardRSACryptoProvider.cs
- PixelShader.cs
- FilteredXmlReader.cs
- ExpressionPrefixAttribute.cs
- WebPart.cs
- CheckoutException.cs
- ToolStripItemImageRenderEventArgs.cs
- XPathMultyIterator.cs
- DependencyPropertyValueSerializer.cs
- HttpCookiesSection.cs
- TreeNode.cs
- FreeFormDesigner.cs
- MetadataReference.cs
- AutomationElementCollection.cs
- MetabaseSettingsIis7.cs
- AnnouncementDispatcherAsyncResult.cs
- WriteTimeStream.cs
- PrintDialog.cs
- SqlCharStream.cs
- BackgroundWorker.cs
- FixedFlowMap.cs
- TypeSystem.cs
- InputProcessorProfilesLoader.cs
- WebPartZone.cs
- TransformCollection.cs
- ContentElementAutomationPeer.cs
- Site.cs
- ProcessHostConfigUtils.cs
- RoleGroupCollection.cs
- ServiceReference.cs
- ControlCachePolicy.cs
- GPPOINTF.cs
- JsonEnumDataContract.cs
- SqlProfileProvider.cs
- mda.cs
- ContentType.cs
- Pair.cs
- XsdCachingReader.cs
- RemotingConfigParser.cs
- DataGridViewMethods.cs
- UriTemplateClientFormatter.cs
- StorageConditionPropertyMapping.cs
- SiteMapPath.cs
- UserNamePasswordValidationMode.cs
- ExeConfigurationFileMap.cs
- OrderedParallelQuery.cs
- SystemResourceKey.cs
- DoubleAnimationUsingPath.cs
- PersonalizationState.cs
- DataMemberFieldEditor.cs
- OleDbRowUpdatedEvent.cs
- Run.cs
- BufferAllocator.cs
- cache.cs
- DESCryptoServiceProvider.cs
- ShellProvider.cs
- WebBrowserNavigatingEventHandler.cs
- DrawingDrawingContext.cs
- NumberAction.cs
- SpellerStatusTable.cs
- util.cs