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
- ListChangedEventArgs.cs
- DataControlFieldCell.cs
- MSAANativeProvider.cs
- OrderPreservingSpoolingTask.cs
- IItemContainerGenerator.cs
- InputDevice.cs
- NotifyParentPropertyAttribute.cs
- NativeRightsManagementAPIsStructures.cs
- AnimationStorage.cs
- AutoGeneratedFieldProperties.cs
- FactoryRecord.cs
- WebControlAdapter.cs
- ContentType.cs
- XsltQilFactory.cs
- XmlnsDefinitionAttribute.cs
- Logging.cs
- HttpListener.cs
- CustomErrorCollection.cs
- BufferedGraphicsContext.cs
- SoapFormatExtensions.cs
- ToolTip.cs
- ZoomComboBox.cs
- ProfilePropertySettings.cs
- ILGenerator.cs
- SchemaManager.cs
- MonthCalendar.cs
- GestureRecognitionResult.cs
- TreeNodeSelectionProcessor.cs
- GeometryValueSerializer.cs
- IsolatedStorage.cs
- BasePattern.cs
- CompilerError.cs
- TextDecorationCollection.cs
- SqlServer2KCompatibilityCheck.cs
- StylusCollection.cs
- BitStream.cs
- TargetException.cs
- QilInvoke.cs
- Pair.cs
- LineGeometry.cs
- IntSecurity.cs
- XmlException.cs
- PropertyItem.cs
- VisualTreeUtils.cs
- BoundColumn.cs
- FormViewRow.cs
- EntitySqlQueryCacheEntry.cs
- MarshalDirectiveException.cs
- HwndMouseInputProvider.cs
- RegexCharClass.cs
- EventLogEntry.cs
- InkCollectionBehavior.cs
- WsatConfiguration.cs
- HttpContext.cs
- DocumentCollection.cs
- RoleManagerModule.cs
- ContextStack.cs
- ErrorTableItemStyle.cs
- XmlAttributeAttribute.cs
- PolicyLevel.cs
- InternalEnumValidatorAttribute.cs
- Adorner.cs
- ColorContext.cs
- ResolveMatchesMessageCD1.cs
- CompositeFontFamily.cs
- XamlReaderConstants.cs
- X509Certificate2.cs
- GuidelineSet.cs
- DistinctQueryOperator.cs
- WebPartConnectVerb.cs
- XmlDocumentType.cs
- WindowsGraphics2.cs
- NavigationProgressEventArgs.cs
- PriorityItem.cs
- XmlSerializableReader.cs
- ImageButton.cs
- GridItemPattern.cs
- Property.cs
- XmlDomTextWriter.cs
- XXXOnTypeBuilderInstantiation.cs
- TextFormattingConverter.cs
- DesignParameter.cs
- TreeNodeCollection.cs
- BitArray.cs
- Pipe.cs
- RemoteEndpointMessageProperty.cs
- GridSplitterAutomationPeer.cs
- Matrix3D.cs
- SHA1Managed.cs
- RangeValidator.cs
- SerialPort.cs
- FontCollection.cs
- Perspective.cs
- ComponentRenameEvent.cs
- FamilyTypefaceCollection.cs
- HtmlForm.cs
- BaseProcessor.cs
- BitmapImage.cs
- HttpCookieCollection.cs
- SimpleBitVector32.cs