Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / _CookieModule.cs / 1305376 / _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.GetRemoteResourceUri(), 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.GetRemoteResourceUri(), 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
- CallId.cs
- IntegerValidatorAttribute.cs
- CompilerScope.cs
- ContentIterators.cs
- DoubleConverter.cs
- TraceHandlerErrorFormatter.cs
- PersonalizationStateInfo.cs
- DisplayMemberTemplateSelector.cs
- VectorAnimationBase.cs
- QueryContinueDragEvent.cs
- ComEventsMethod.cs
- RightNameExpirationInfoPair.cs
- LinearGradientBrush.cs
- IBuiltInEvidence.cs
- PnrpPermission.cs
- TextBoxDesigner.cs
- UriTemplateQueryValue.cs
- HyperLinkDataBindingHandler.cs
- ColumnMapTranslator.cs
- AuthenticationConfig.cs
- XMLUtil.cs
- TerminateDesigner.cs
- DesignerForm.cs
- CreateDataSourceDialog.cs
- XmlBinaryReader.cs
- LineInfo.cs
- EdmMember.cs
- InputLanguageManager.cs
- UseAttributeSetsAction.cs
- SharedPersonalizationStateInfo.cs
- PropertyEmitter.cs
- Transactions.cs
- ContainerFilterService.cs
- TransformValueSerializer.cs
- XmlWriterTraceListener.cs
- DBNull.cs
- DataGridPagerStyle.cs
- SR.cs
- xmlfixedPageInfo.cs
- SelectionWordBreaker.cs
- NavigationEventArgs.cs
- WindowsGraphicsCacheManager.cs
- AlignmentXValidation.cs
- MetadataArtifactLoaderCompositeResource.cs
- GridPatternIdentifiers.cs
- UIElementCollection.cs
- Context.cs
- KeyTimeConverter.cs
- KnownTypesProvider.cs
- webclient.cs
- arc.cs
- XsltSettings.cs
- ByteKeyFrameCollection.cs
- TextTreeDeleteContentUndoUnit.cs
- ConnectionConsumerAttribute.cs
- MetaData.cs
- StringWriter.cs
- TextInfo.cs
- XmlSchemaChoice.cs
- UnsafeNativeMethods.cs
- XamlWriter.cs
- DynamicPropertyReader.cs
- ValueHandle.cs
- ItemMap.cs
- InternalTypeHelper.cs
- TemplateDefinition.cs
- BinaryObjectReader.cs
- DPAPIProtectedConfigurationProvider.cs
- CompareValidator.cs
- HttpCacheVaryByContentEncodings.cs
- ToolStripKeyboardHandlingService.cs
- UInt32.cs
- GridViewPageEventArgs.cs
- XmlAttributeCollection.cs
- EntityException.cs
- RecordsAffectedEventArgs.cs
- XamlBrushSerializer.cs
- CombinedGeometry.cs
- XmlArrayItemAttributes.cs
- _AcceptOverlappedAsyncResult.cs
- ListControl.cs
- DocumentSchemaValidator.cs
- EntityDataSourceColumn.cs
- ToolTipService.cs
- Crc32Helper.cs
- AtomicFile.cs
- RawUIStateInputReport.cs
- ProcessHostFactoryHelper.cs
- VerificationAttribute.cs
- XsdBuildProvider.cs
- NetworkInformationException.cs
- TransactedBatchContext.cs
- EntityDesignerDataSourceView.cs
- SqlCommandSet.cs
- GeometryModel3D.cs
- BindingElement.cs
- cryptoapiTransform.cs
- UrlMappingsModule.cs
- TextServicesContext.cs
- SqlRowUpdatingEvent.cs