Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / _CookieModule.cs / 1 / _CookieModule.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
internal static class CookieModule {
// fields
// constructors
// properties
// methods
internal static void OnSendingHeaders(HttpWebRequest httpWebRequest) {
GlobalLog.Print("CookieModule::OnSendingHeaders()");
try {
if (httpWebRequest.CookieContainer == null) {
return;
}
//
// remove all current cookies. This could be a redirect
//
httpWebRequest.Headers.RemoveInternal(HttpKnownHeaderNames.Cookie);
//
// add in the new headers from the cookie container for this request
//
string optCookie2;
string cookieString = httpWebRequest.CookieContainer.GetCookieHeader(
httpWebRequest.Address,
out optCookie2);
if (cookieString.Length > 0) {
GlobalLog.Print("CookieModule::OnSendingHeaders() setting Cookie header to:[" + cookieString + "]");
httpWebRequest.Headers[HttpKnownHeaderNames.Cookie] = cookieString;
//<
}
}
catch {
}
}
internal static void OnReceivedHeaders(HttpWebRequest httpWebRequest) {
GlobalLog.Print("CookieModule.OnReceivedHeaders()");
//
// if the app doesn't want us to handle cookies then there's nothing
// to do. Note that we're leaving open the possibility that these
// settings could be changed between the request being made and the
// response received
//
try {
if (httpWebRequest.CookieContainer == null) {
return;
}
//
// add any received cookies for this response to the container
//
HttpWebResponse response = httpWebRequest._HttpResponse as HttpWebResponse;
if (response == null) {
return;
}
CookieCollection cookies = null;
try {
string cookieString = response.Headers.SetCookie;
GlobalLog.Print("CookieModule::OnSendingHeaders() received Set-Cookie:[" + cookieString + "]");
if ((cookieString != null) && (cookieString.Length > 0)) {
cookies = httpWebRequest.CookieContainer.CookieCutter(
response.ResponseUri,
HttpKnownHeaderNames.SetCookie,
cookieString,
false);
}
}
catch {
}
try {
string cookieString = response.Headers.SetCookie2;
GlobalLog.Print("CookieModule::OnSendingHeaders() received Set-Cookie2:[" + cookieString + "]");
if ((cookieString != null) && (cookieString.Length > 0)) {
CookieCollection cookies2 = httpWebRequest.CookieContainer.CookieCutter(
response.ResponseUri,
HttpKnownHeaderNames.SetCookie2,
cookieString,
false);
if (cookies != null && cookies.Count != 0) {
cookies.Add(cookies2);
}
else {
cookies = cookies2;
}
}
}
catch {
}
if (cookies != null) {
response.Cookies = cookies;
}
}
catch {
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
internal static class CookieModule {
// fields
// constructors
// properties
// methods
internal static void OnSendingHeaders(HttpWebRequest httpWebRequest) {
GlobalLog.Print("CookieModule::OnSendingHeaders()");
try {
if (httpWebRequest.CookieContainer == null) {
return;
}
//
// remove all current cookies. This could be a redirect
//
httpWebRequest.Headers.RemoveInternal(HttpKnownHeaderNames.Cookie);
//
// add in the new headers from the cookie container for this request
//
string optCookie2;
string cookieString = httpWebRequest.CookieContainer.GetCookieHeader(
httpWebRequest.Address,
out optCookie2);
if (cookieString.Length > 0) {
GlobalLog.Print("CookieModule::OnSendingHeaders() setting Cookie header to:[" + cookieString + "]");
httpWebRequest.Headers[HttpKnownHeaderNames.Cookie] = cookieString;
//<
}
}
catch {
}
}
internal static void OnReceivedHeaders(HttpWebRequest httpWebRequest) {
GlobalLog.Print("CookieModule.OnReceivedHeaders()");
//
// if the app doesn't want us to handle cookies then there's nothing
// to do. Note that we're leaving open the possibility that these
// settings could be changed between the request being made and the
// response received
//
try {
if (httpWebRequest.CookieContainer == null) {
return;
}
//
// add any received cookies for this response to the container
//
HttpWebResponse response = httpWebRequest._HttpResponse as HttpWebResponse;
if (response == null) {
return;
}
CookieCollection cookies = null;
try {
string cookieString = response.Headers.SetCookie;
GlobalLog.Print("CookieModule::OnSendingHeaders() received Set-Cookie:[" + cookieString + "]");
if ((cookieString != null) && (cookieString.Length > 0)) {
cookies = httpWebRequest.CookieContainer.CookieCutter(
response.ResponseUri,
HttpKnownHeaderNames.SetCookie,
cookieString,
false);
}
}
catch {
}
try {
string cookieString = response.Headers.SetCookie2;
GlobalLog.Print("CookieModule::OnSendingHeaders() received Set-Cookie2:[" + cookieString + "]");
if ((cookieString != null) && (cookieString.Length > 0)) {
CookieCollection cookies2 = httpWebRequest.CookieContainer.CookieCutter(
response.ResponseUri,
HttpKnownHeaderNames.SetCookie2,
cookieString,
false);
if (cookies != null && cookies.Count != 0) {
cookies.Add(cookies2);
}
else {
cookies = cookies2;
}
}
}
catch {
}
if (cookies != null) {
response.Cookies = cookies;
}
}
catch {
}
}
}
}
// 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
- PageRanges.cs
- HttpClientCertificate.cs
- ToolStripSplitButton.cs
- ImageListImageEditor.cs
- FileDialogCustomPlacesCollection.cs
- ObjectDataSourceDesigner.cs
- XamlSerializerUtil.cs
- DrawListViewSubItemEventArgs.cs
- HotSpotCollection.cs
- XmlSchemaImport.cs
- ListViewPagedDataSource.cs
- DbgUtil.cs
- ExceptionRoutedEventArgs.cs
- FormattedText.cs
- WizardStepBase.cs
- PrintController.cs
- WebPartExportVerb.cs
- EncoderReplacementFallback.cs
- DefinitionBase.cs
- PeerChannelListener.cs
- Helpers.cs
- ModuleBuilderData.cs
- AttributeQuery.cs
- CalendarData.cs
- WebPartConnectionsEventArgs.cs
- XNodeSchemaApplier.cs
- ToolStripItemBehavior.cs
- MimeFormatExtensions.cs
- ADMembershipUser.cs
- SQLInt64Storage.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- HotSpot.cs
- StickyNote.cs
- AdRotator.cs
- SingleConverter.cs
- PackUriHelper.cs
- Translator.cs
- SQLByte.cs
- SqlDataReader.cs
- PreservationFileReader.cs
- Executor.cs
- XmlSchemaObjectTable.cs
- SystemInfo.cs
- TextRangeProviderWrapper.cs
- PagerSettings.cs
- CharEnumerator.cs
- ThreadStateException.cs
- DtdParser.cs
- DocumentGridContextMenu.cs
- GregorianCalendar.cs
- ReadOnlyDataSourceView.cs
- validationstate.cs
- Evidence.cs
- UnsafeNativeMethodsPenimc.cs
- GlyphTypeface.cs
- XmlTypeMapping.cs
- SecurityHelper.cs
- InstanceCreationEditor.cs
- _SslState.cs
- MarginsConverter.cs
- EngineSite.cs
- Transform3DGroup.cs
- ToolStripItem.cs
- CodePropertyReferenceExpression.cs
- StorageRoot.cs
- Graph.cs
- COM2TypeInfoProcessor.cs
- WebPartDisplayModeEventArgs.cs
- CodeBinaryOperatorExpression.cs
- HttpListenerRequest.cs
- MailMessage.cs
- StringInfo.cs
- TabControlEvent.cs
- PointCollectionConverter.cs
- XmlSchemaDatatype.cs
- ValidationRuleCollection.cs
- ValidationErrorCollection.cs
- BaseTemplateParser.cs
- TextShapeableCharacters.cs
- Pen.cs
- EmptyEnumerator.cs
- XmlStreamStore.cs
- WebEncodingValidatorAttribute.cs
- DecoderFallback.cs
- DiscoveryMessageSequence11.cs
- CompilerGlobalScopeAttribute.cs
- FreezableOperations.cs
- DetailsViewDeleteEventArgs.cs
- QueryableDataSource.cs
- DefaultAssemblyResolver.cs
- GeneralTransform3DCollection.cs
- InstanceNotFoundException.cs
- HttpDebugHandler.cs
- JapaneseLunisolarCalendar.cs
- DataGridHeaderBorder.cs
- VariableExpressionConverter.cs
- PersonalizationStateInfoCollection.cs
- ExpressionCopier.cs
- HorizontalAlignConverter.cs
- XMLUtil.cs