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
- EmptyControlCollection.cs
- GestureRecognizer.cs
- ConstraintCollection.cs
- PartEditor.cs
- GACIdentityPermission.cs
- EdmProviderManifest.cs
- JsonFormatReaderGenerator.cs
- EntityDataSourceContextCreatingEventArgs.cs
- Brush.cs
- StylusPointPropertyInfoDefaults.cs
- FatalException.cs
- BinaryReader.cs
- PngBitmapEncoder.cs
- OleDbInfoMessageEvent.cs
- GridViewColumnHeader.cs
- XmlSchemaAppInfo.cs
- DashStyle.cs
- BlurEffect.cs
- GridViewSelectEventArgs.cs
- PrinterResolution.cs
- XmlRawWriterWrapper.cs
- CultureTable.cs
- DBConnectionString.cs
- X509Extension.cs
- SessionPageStateSection.cs
- ExpandCollapseProviderWrapper.cs
- SocketException.cs
- BitmapEffectGeneralTransform.cs
- DependencyObjectType.cs
- HttpDebugHandler.cs
- FormsAuthenticationModule.cs
- DataListItemEventArgs.cs
- FontSourceCollection.cs
- UnsafePeerToPeerMethods.cs
- METAHEADER.cs
- PerformanceCounterCategory.cs
- SqlDataSourceFilteringEventArgs.cs
- HashHelper.cs
- TableHeaderCell.cs
- CompilerResults.cs
- DataError.cs
- TextRenderer.cs
- OleDbCommandBuilder.cs
- RenderDataDrawingContext.cs
- Transform3DCollection.cs
- RequiredArgumentAttribute.cs
- Preprocessor.cs
- SectionInformation.cs
- IdentityValidationException.cs
- PriorityBindingExpression.cs
- WpfKnownMemberInvoker.cs
- SqlEnums.cs
- RecordBuilder.cs
- RadialGradientBrush.cs
- CheckBoxAutomationPeer.cs
- shaperfactory.cs
- JulianCalendar.cs
- SqlNamer.cs
- PrimitiveCodeDomSerializer.cs
- TableRowsCollectionEditor.cs
- SQLUtility.cs
- DefaultShape.cs
- XmlDataSource.cs
- WorkflowServiceBehavior.cs
- ProjectionCamera.cs
- SecurityManager.cs
- Processor.cs
- RequestCache.cs
- SqlFormatter.cs
- CodeThrowExceptionStatement.cs
- BaseHashHelper.cs
- ComplexType.cs
- Style.cs
- InstanceHandleReference.cs
- PreloadedPackages.cs
- ResourceDefaultValueAttribute.cs
- XmlSchemaSimpleTypeList.cs
- XmlSchemaSequence.cs
- AppLevelCompilationSectionCache.cs
- DriveNotFoundException.cs
- RotateTransform3D.cs
- RequestCachePolicy.cs
- ListViewGroupItemCollection.cs
- TabPage.cs
- XmlUrlResolver.cs
- TransactedReceiveScope.cs
- ResourcesChangeInfo.cs
- SQLRoleProvider.cs
- HtmlElement.cs
- BindingsCollection.cs
- DataException.cs
- WindowInteropHelper.cs
- WebConfigurationManager.cs
- SqlCacheDependencyDatabase.cs
- HttpWriter.cs
- MetadataArtifactLoaderCompositeResource.cs
- DataPagerCommandEventArgs.cs
- graph.cs
- SoapProtocolImporter.cs
- ModelItemDictionary.cs