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
- LeftCellWrapper.cs
- XmlSchemaResource.cs
- connectionpool.cs
- CustomCategoryAttribute.cs
- RequestCacheEntry.cs
- HttpStreamFormatter.cs
- CapiHashAlgorithm.cs
- BridgeDataRecord.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- QueryExpr.cs
- DriveInfo.cs
- ResourceCategoryAttribute.cs
- PolyQuadraticBezierSegment.cs
- DataRowChangeEvent.cs
- EndpointIdentityExtension.cs
- ProfileSettingsCollection.cs
- TdsRecordBufferSetter.cs
- ImmutableObjectAttribute.cs
- Misc.cs
- RemotingService.cs
- DataGridViewTopRowAccessibleObject.cs
- TextViewBase.cs
- TextSpan.cs
- SpnegoTokenAuthenticator.cs
- PhysicalFontFamily.cs
- InternalConfigSettingsFactory.cs
- WebSysDisplayNameAttribute.cs
- UrlAuthFailedErrorFormatter.cs
- KeyedHashAlgorithm.cs
- ValueExpressions.cs
- InternalResources.cs
- BitStack.cs
- LogicalExpr.cs
- EventRouteFactory.cs
- ConnectionStringSettings.cs
- CommandDevice.cs
- HitTestParameters.cs
- SchemaNamespaceManager.cs
- TextUtf8RawTextWriter.cs
- CustomErrorsSectionWrapper.cs
- InputReportEventArgs.cs
- ValidationPropertyAttribute.cs
- SQLBoolean.cs
- ServerValidateEventArgs.cs
- ObjectSecurity.cs
- PiiTraceSource.cs
- QilStrConcatenator.cs
- HttpCacheVaryByContentEncodings.cs
- CodePageUtils.cs
- SymLanguageVendor.cs
- LicenseManager.cs
- Size3DValueSerializer.cs
- CLSCompliantAttribute.cs
- PropertyGroupDescription.cs
- CompositeDuplexBindingElementImporter.cs
- ScriptResourceAttribute.cs
- Style.cs
- ManifestSignatureInformation.cs
- WebEventTraceProvider.cs
- RoutingUtilities.cs
- TraceContext.cs
- HTMLTagNameToTypeMapper.cs
- LazyTextWriterCreator.cs
- MemberCollection.cs
- MatrixTransform.cs
- UiaCoreTypesApi.cs
- AxisAngleRotation3D.cs
- SeverityFilter.cs
- XmlSchemaAnnotation.cs
- XhtmlConformanceSection.cs
- AuthorizationRuleCollection.cs
- PageFunction.cs
- TakeQueryOptionExpression.cs
- LassoSelectionBehavior.cs
- Camera.cs
- XmlLanguageConverter.cs
- SmiEventSink_DeferedProcessing.cs
- NativeMethodsCLR.cs
- EdmSchemaError.cs
- ChildrenQuery.cs
- LineServicesCallbacks.cs
- XsltQilFactory.cs
- HttpApplicationFactory.cs
- HtmlContainerControl.cs
- XmlReflectionMember.cs
- ImageListImageEditor.cs
- ThreadStartException.cs
- CurrencyWrapper.cs
- SqlAliasesReferenced.cs
- CqlLexerHelpers.cs
- StringValueConverter.cs
- FormViewInsertedEventArgs.cs
- SimpleTextLine.cs
- ColumnMapCopier.cs
- InvalidComObjectException.cs
- SafeMemoryMappedViewHandle.cs
- DesignerLoader.cs
- HwndSourceKeyboardInputSite.cs
- StopStoryboard.cs
- DetailsViewDeletedEventArgs.cs