Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / AuthenticationConfig.cs / 1305376 / AuthenticationConfig.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * AuthenticationConfigHandler class * * Copyright (c) 1999 Microsoft Corporation */ namespace System.Web.Configuration { using System.Runtime.Serialization; using System.Web.Util; using System.Collections; using System.IO; using System.Security.Principal; using System.Xml; using System.Security.Cryptography; using System.Configuration; using System.Globalization; using System.Web.Hosting; using System.Web.Compilation; static internal class AuthenticationConfig { private static AuthenticationMode? s_explicitMode; internal static AuthenticationMode Mode { get { if (s_explicitMode.HasValue) { return s_explicitMode.Value; } else { AuthenticationSection settings = RuntimeConfig.GetAppConfig().Authentication; settings.ValidateAuthenticationMode(); return settings.Mode; } } set { Debug.Assert(BuildManager.PreStartInitStage == PreStartInitStage.DuringPreStartInit); Debug.Assert(value == AuthenticationMode.Forms, "Only Forms mode can be set to override config"); s_explicitMode = value; } } internal static String GetCompleteLoginUrl(HttpContext context, String loginUrl) { if (String.IsNullOrEmpty(loginUrl)) { return String.Empty; } if (UrlPath.IsRelativeUrl(loginUrl)) { loginUrl = UrlPath.Combine(HttpRuntime.AppDomainAppVirtualPathString, loginUrl); } return loginUrl; } internal static bool AccessingLoginPage(HttpContext context, String loginUrl) { if (String.IsNullOrEmpty(loginUrl)) { return false; } loginUrl = GetCompleteLoginUrl(context, loginUrl); if (String.IsNullOrEmpty(loginUrl)) { return false; } // Ignore query string int iqs = loginUrl.IndexOf('?'); if (iqs >= 0) { loginUrl = loginUrl.Substring(0, iqs); } String requestPath = context.Request.Path; if (StringUtil.EqualsIgnoreCase(requestPath, loginUrl)) { return true; } // It could be that loginUrl in config was UrlEncoded (ASURT 98932) if (loginUrl.IndexOf('%') >= 0) { String decodedLoginUrl; // encoding is unknown try UTF-8 first, then request encoding decodedLoginUrl = HttpUtility.UrlDecode(loginUrl); if (StringUtil.EqualsIgnoreCase(requestPath, decodedLoginUrl)) { return true; } decodedLoginUrl = HttpUtility.UrlDecode(loginUrl, context.Request.ContentEncoding); if (StringUtil.EqualsIgnoreCase(requestPath, decodedLoginUrl)) { return true; } } return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * AuthenticationConfigHandler class * * Copyright (c) 1999 Microsoft Corporation */ namespace System.Web.Configuration { using System.Runtime.Serialization; using System.Web.Util; using System.Collections; using System.IO; using System.Security.Principal; using System.Xml; using System.Security.Cryptography; using System.Configuration; using System.Globalization; using System.Web.Hosting; using System.Web.Compilation; static internal class AuthenticationConfig { private static AuthenticationMode? s_explicitMode; internal static AuthenticationMode Mode { get { if (s_explicitMode.HasValue) { return s_explicitMode.Value; } else { AuthenticationSection settings = RuntimeConfig.GetAppConfig().Authentication; settings.ValidateAuthenticationMode(); return settings.Mode; } } set { Debug.Assert(BuildManager.PreStartInitStage == PreStartInitStage.DuringPreStartInit); Debug.Assert(value == AuthenticationMode.Forms, "Only Forms mode can be set to override config"); s_explicitMode = value; } } internal static String GetCompleteLoginUrl(HttpContext context, String loginUrl) { if (String.IsNullOrEmpty(loginUrl)) { return String.Empty; } if (UrlPath.IsRelativeUrl(loginUrl)) { loginUrl = UrlPath.Combine(HttpRuntime.AppDomainAppVirtualPathString, loginUrl); } return loginUrl; } internal static bool AccessingLoginPage(HttpContext context, String loginUrl) { if (String.IsNullOrEmpty(loginUrl)) { return false; } loginUrl = GetCompleteLoginUrl(context, loginUrl); if (String.IsNullOrEmpty(loginUrl)) { return false; } // Ignore query string int iqs = loginUrl.IndexOf('?'); if (iqs >= 0) { loginUrl = loginUrl.Substring(0, iqs); } String requestPath = context.Request.Path; if (StringUtil.EqualsIgnoreCase(requestPath, loginUrl)) { return true; } // It could be that loginUrl in config was UrlEncoded (ASURT 98932) if (loginUrl.IndexOf('%') >= 0) { String decodedLoginUrl; // encoding is unknown try UTF-8 first, then request encoding decodedLoginUrl = HttpUtility.UrlDecode(loginUrl); if (StringUtil.EqualsIgnoreCase(requestPath, decodedLoginUrl)) { return true; } decodedLoginUrl = HttpUtility.UrlDecode(loginUrl, context.Request.ContentEncoding); if (StringUtil.EqualsIgnoreCase(requestPath, decodedLoginUrl)) { return true; } } return false; } } } // 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
- BuilderPropertyEntry.cs
- Section.cs
- DataSourceControlBuilder.cs
- ExpressionEditorAttribute.cs
- Floater.cs
- TableCellAutomationPeer.cs
- KeysConverter.cs
- ChineseLunisolarCalendar.cs
- ControlLocalizer.cs
- ScriptHandlerFactory.cs
- ConfigXmlComment.cs
- FilterEventArgs.cs
- LayoutEngine.cs
- RelationshipEnd.cs
- WebConvert.cs
- RegularExpressionValidator.cs
- CodeGenerator.cs
- HttpServerUtilityBase.cs
- MetadataFile.cs
- _emptywebproxy.cs
- SingleStorage.cs
- StyleCollection.cs
- EntityWithChangeTrackerStrategy.cs
- WsatTransactionInfo.cs
- ActivationArguments.cs
- ImageMap.cs
- VideoDrawing.cs
- ServiceCredentialsElement.cs
- XmlCustomFormatter.cs
- DataServiceHost.cs
- IgnoreDataMemberAttribute.cs
- PermissionListSet.cs
- BinarySerializer.cs
- X509Chain.cs
- TimeSpanConverter.cs
- ItemsControl.cs
- CodeTypeDeclarationCollection.cs
- SoapInteropTypes.cs
- PagesChangedEventArgs.cs
- SqlMetaData.cs
- MediaElement.cs
- WebSysDefaultValueAttribute.cs
- CodeDOMUtility.cs
- CornerRadiusConverter.cs
- DiscreteKeyFrames.cs
- HtmlValidatorAdapter.cs
- CallId.cs
- WebMessageEncoderFactory.cs
- FixedSOMElement.cs
- PartBasedPackageProperties.cs
- ConstraintStruct.cs
- LinqDataSourceStatusEventArgs.cs
- COAUTHINFO.cs
- RotateTransform.cs
- FlowThrottle.cs
- LOSFormatter.cs
- SqlXml.cs
- SafeNativeMethods.cs
- BasicHttpBindingElement.cs
- BamlCollectionHolder.cs
- StyleTypedPropertyAttribute.cs
- elementinformation.cs
- LogicalExpr.cs
- ListViewSortEventArgs.cs
- EdmItemCollection.cs
- TextBounds.cs
- WebControlsSection.cs
- FtpWebRequest.cs
- PenLineJoinValidation.cs
- CacheEntry.cs
- CommandConverter.cs
- PresentationTraceSources.cs
- HostProtectionPermission.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- TextSegment.cs
- DeviceContexts.cs
- LazyTextWriterCreator.cs
- SaveFileDialogDesigner.cs
- FrameworkRichTextComposition.cs
- StartUpEventArgs.cs
- ReflectPropertyDescriptor.cs
- LineSegment.cs
- TimeStampChecker.cs
- ServicePointManagerElement.cs
- BoundPropertyEntry.cs
- ConsumerConnectionPointCollection.cs
- SqlMetaData.cs
- RemotingConfigParser.cs
- Tokenizer.cs
- FixedHighlight.cs
- WindowHideOrCloseTracker.cs
- SqlUserDefinedAggregateAttribute.cs
- HtmlInputReset.cs
- StrokeNodeEnumerator.cs
- _Win32.cs
- GZipDecoder.cs
- EventLogTraceListener.cs
- Semaphore.cs
- followingsibling.cs
- IgnoreSectionHandler.cs