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
- CodeRegionDirective.cs
- DateTimeFormatInfo.cs
- CapabilitiesAssignment.cs
- C14NUtil.cs
- securitycriticaldataformultiplegetandset.cs
- webclient.cs
- XmlSchemaSet.cs
- QilCloneVisitor.cs
- QilIterator.cs
- XmlILCommand.cs
- DataTableTypeConverter.cs
- DockAndAnchorLayout.cs
- ConfigXmlReader.cs
- PartitionerStatic.cs
- OdbcErrorCollection.cs
- COM2PictureConverter.cs
- Repeater.cs
- SoapSchemaExporter.cs
- PageContentAsyncResult.cs
- MouseCaptureWithinProperty.cs
- CssClassPropertyAttribute.cs
- XmlSchemaSimpleTypeUnion.cs
- SkinBuilder.cs
- HttpConfigurationContext.cs
- SpecialTypeDataContract.cs
- CommentEmitter.cs
- RequiredArgumentAttribute.cs
- XmlNamespaceDeclarationsAttribute.cs
- ParsedRoute.cs
- AttributeQuery.cs
- XmlAttributeOverrides.cs
- URIFormatException.cs
- Select.cs
- AddInContractAttribute.cs
- ITextView.cs
- WebEventTraceProvider.cs
- _ConnectStream.cs
- ContextInformation.cs
- RepeatBehaviorConverter.cs
- XmlCharacterData.cs
- InstanceData.cs
- DbException.cs
- ClientSponsor.cs
- CollectionViewGroupRoot.cs
- XmlWriterTraceListener.cs
- ValuePatternIdentifiers.cs
- VideoDrawing.cs
- FillBehavior.cs
- GenerateTemporaryTargetAssembly.cs
- XamlReader.cs
- EntityDataSourceContextCreatingEventArgs.cs
- DocumentViewer.cs
- PropertyDescriptors.cs
- ObjectQueryExecutionPlan.cs
- WebHttpBinding.cs
- ReferentialConstraint.cs
- ToolStrip.cs
- MimeMapping.cs
- OperationFormatter.cs
- MailSettingsSection.cs
- ModelItemImpl.cs
- WebPartTransformer.cs
- HandlerMappingMemo.cs
- SemanticResultKey.cs
- MetaType.cs
- XPathNodeIterator.cs
- CompilationUnit.cs
- MediaElement.cs
- NullRuntimeConfig.cs
- IndentTextWriter.cs
- MessageDecoder.cs
- MenuItemBinding.cs
- XmlEntityReference.cs
- DESCryptoServiceProvider.cs
- HttpResponseHeader.cs
- AnchoredBlock.cs
- SizeConverter.cs
- ValidationErrorCollection.cs
- smtpconnection.cs
- ActiveXContainer.cs
- ToolStripContentPanel.cs
- ErrorView.xaml.cs
- SourceItem.cs
- TextServicesCompartment.cs
- ISO2022Encoding.cs
- SpotLight.cs
- XPathDescendantIterator.cs
- WindowsTokenRoleProvider.cs
- Roles.cs
- EntityTypeEmitter.cs
- Preprocessor.cs
- IndexedGlyphRun.cs
- PerfService.cs
- ObjectFullSpanRewriter.cs
- MetadataWorkspace.cs
- SoapFormatExtensions.cs
- DesignBindingConverter.cs
- EDesignUtil.cs
- PartitionedDataSource.cs
- SmtpCommands.cs