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
- BamlResourceDeserializer.cs
- CustomErrorsSection.cs
- TemplateXamlParser.cs
- Message.cs
- iisPickupDirectory.cs
- ArithmeticException.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- Icon.cs
- XmlReflectionMember.cs
- CodeSubDirectory.cs
- MobileListItem.cs
- TaskbarItemInfo.cs
- PackWebRequestFactory.cs
- ListBindingConverter.cs
- DoubleAverageAggregationOperator.cs
- ISFTagAndGuidCache.cs
- _AuthenticationState.cs
- UInt16Converter.cs
- _TransmitFileOverlappedAsyncResult.cs
- CompositeClientFormatter.cs
- HttpWriter.cs
- EventLogPermissionEntryCollection.cs
- Win32Interop.cs
- SoapObjectReader.cs
- TypeConverterHelper.cs
- UrlMappingsSection.cs
- InputLanguageSource.cs
- Tablet.cs
- HtmlElementCollection.cs
- SQLInt64Storage.cs
- XmlSchemaSimpleTypeList.cs
- precedingsibling.cs
- RadialGradientBrush.cs
- QilFunction.cs
- PatternMatcher.cs
- ContainerUtilities.cs
- DateTimeHelper.cs
- CookieParameter.cs
- JoinTreeSlot.cs
- SafeSerializationManager.cs
- PtsHelper.cs
- CodeParameterDeclarationExpressionCollection.cs
- RepeatButtonAutomationPeer.cs
- Container.cs
- MdiWindowListItemConverter.cs
- TextSelectionHighlightLayer.cs
- ScrollBar.cs
- SelectQueryOperator.cs
- XmlReader.cs
- XmlSchemaChoice.cs
- RoleBoolean.cs
- TypeDelegator.cs
- BindingSource.cs
- BitmapInitialize.cs
- CharStorage.cs
- DuplicateWaitObjectException.cs
- DeviceSpecificChoiceCollection.cs
- QilXmlReader.cs
- HttpServerChannel.cs
- ForwardPositionQuery.cs
- ComboBoxAutomationPeer.cs
- WebPartConnectionsCancelEventArgs.cs
- SolidBrush.cs
- _NtlmClient.cs
- SelfIssuedSamlTokenFactory.cs
- ToolStripContentPanel.cs
- WsdlEndpointConversionContext.cs
- PopupRootAutomationPeer.cs
- FtpWebRequest.cs
- SiteMap.cs
- WebPartCatalogCloseVerb.cs
- DrawItemEvent.cs
- ReaderContextStackData.cs
- Win32MouseDevice.cs
- Debug.cs
- UnsupportedPolicyOptionsException.cs
- ObjectQuery.cs
- TaskForm.cs
- PropertyNames.cs
- ListenerConnectionModeReader.cs
- ListViewAutomationPeer.cs
- Divide.cs
- ProviderConnectionPoint.cs
- xmlsaver.cs
- EnumType.cs
- HttpRuntimeSection.cs
- TemplatePagerField.cs
- HtmlTableCellCollection.cs
- CodeMemberEvent.cs
- DetailsViewCommandEventArgs.cs
- FamilyMapCollection.cs
- RequiredFieldValidator.cs
- SystemThemeKey.cs
- Color.cs
- TemplatePagerField.cs
- _ConnectOverlappedAsyncResult.cs
- RtfFormatStack.cs
- SmiSettersStream.cs
- ParallelLoopState.cs
- IndexedGlyphRun.cs