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
- Oci.cs
- TypeSchema.cs
- HttpGetProtocolReflector.cs
- EnvironmentPermission.cs
- CommonRemoteMemoryBlock.cs
- UserNamePasswordValidationMode.cs
- DocumentsTrace.cs
- Visual3D.cs
- ArrayConverter.cs
- GetRecipientListRequest.cs
- ImageBrush.cs
- MarkupCompilePass1.cs
- Utils.cs
- RelatedView.cs
- XmlCodeExporter.cs
- RuntimeWrappedException.cs
- basecomparevalidator.cs
- FixedDocumentPaginator.cs
- UntypedNullExpression.cs
- TabControl.cs
- HttpBrowserCapabilitiesWrapper.cs
- RoutingConfiguration.cs
- CapabilitiesPattern.cs
- entityreference_tresulttype.cs
- DbConnectionClosed.cs
- SqlRecordBuffer.cs
- IteratorDescriptor.cs
- DataObjectFieldAttribute.cs
- FormCollection.cs
- VisualCollection.cs
- WebEvents.cs
- NavigationWindowAutomationPeer.cs
- WindowsGraphics.cs
- HeaderedContentControl.cs
- ProxyAssemblyNotLoadedException.cs
- UnionExpr.cs
- HwndSubclass.cs
- PathFigureCollectionConverter.cs
- ApplicationSecurityManager.cs
- VirtualDirectoryMapping.cs
- AutomationFocusChangedEventArgs.cs
- Point3DConverter.cs
- TextComposition.cs
- Metadata.cs
- SqlDelegatedTransaction.cs
- WeakRefEnumerator.cs
- HttpRequest.cs
- TextAction.cs
- FontUnitConverter.cs
- PriorityQueue.cs
- FileStream.cs
- EpmContentSerializerBase.cs
- GPRECT.cs
- FontFamily.cs
- TextSelectionProcessor.cs
- VerificationAttribute.cs
- RadioButtonBaseAdapter.cs
- ClientCredentials.cs
- Translator.cs
- IdentityHolder.cs
- _SecureChannel.cs
- ActivationArguments.cs
- Rijndael.cs
- ZipIOLocalFileDataDescriptor.cs
- FixedHighlight.cs
- MultiAsyncResult.cs
- DbgCompiler.cs
- CodeTypeReference.cs
- PrimitiveCodeDomSerializer.cs
- FixedPageProcessor.cs
- ScrollItemProviderWrapper.cs
- GroupBox.cs
- SchemaImporterExtension.cs
- SynchronousChannelMergeEnumerator.cs
- TemplateContentLoader.cs
- UpdateCommandGenerator.cs
- XmlStreamNodeWriter.cs
- ScaleTransform.cs
- SequenceNumber.cs
- XmlElement.cs
- InstanceStore.cs
- CatalogPart.cs
- CodeCommentStatementCollection.cs
- ContractNamespaceAttribute.cs
- ToolStripProgressBar.cs
- RuleSetDialog.cs
- DataGridViewHeaderCell.cs
- AudioStateChangedEventArgs.cs
- FileDialog_Vista_Interop.cs
- TraceHwndHost.cs
- ListViewDeletedEventArgs.cs
- BitmapSizeOptions.cs
- Pkcs9Attribute.cs
- CatchDesigner.xaml.cs
- XmlQualifiedNameTest.cs
- TdsParserHelperClasses.cs
- DomainUpDown.cs
- AuthorizationRule.cs
- BoundField.cs
- X509Certificate2.cs