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
- Attributes.cs
- ScrollBarAutomationPeer.cs
- BitVector32.cs
- EdmScalarPropertyAttribute.cs
- SqlConnectionManager.cs
- cache.cs
- WebServiceParameterData.cs
- CatalogPart.cs
- DataGridViewEditingControlShowingEventArgs.cs
- MembershipValidatePasswordEventArgs.cs
- returneventsaver.cs
- ActionItem.cs
- AccessDataSourceDesigner.cs
- LinqDataSourceSelectEventArgs.cs
- DefinitionBase.cs
- UITypeEditor.cs
- FileLogRecord.cs
- Sequence.cs
- TypeDelegator.cs
- ValidatorUtils.cs
- DataServiceContext.cs
- List.cs
- CodeAttributeDeclaration.cs
- TextModifierScope.cs
- RelationshipDetailsRow.cs
- XmlAutoDetectWriter.cs
- UserPreferenceChangedEventArgs.cs
- CryptoProvider.cs
- TimeSpanMinutesConverter.cs
- IndexingContentUnit.cs
- RuleConditionDialog.Designer.cs
- ArrangedElement.cs
- EngineSiteSapi.cs
- WCFBuildProvider.cs
- SimpleLine.cs
- ContentType.cs
- FixedSOMElement.cs
- GroupBox.cs
- SerializationEventsCache.cs
- VsPropertyGrid.cs
- UrlMappingCollection.cs
- IEnumerable.cs
- ModelVisual3D.cs
- MappingException.cs
- AttachedPropertyMethodSelector.cs
- DragEventArgs.cs
- DataExchangeServiceBinder.cs
- Lease.cs
- ExpressionParser.cs
- MappingException.cs
- X509ThumbprintKeyIdentifierClause.cs
- WindowPattern.cs
- SessionIDManager.cs
- SamlAction.cs
- ResXFileRef.cs
- WebPartManagerDesigner.cs
- XamlClipboardData.cs
- SpotLight.cs
- DataGridViewCellLinkedList.cs
- MouseOverProperty.cs
- RotateTransform3D.cs
- OptimizedTemplateContentHelper.cs
- CheckBox.cs
- PopupRootAutomationPeer.cs
- CodeDefaultValueExpression.cs
- ExpressionBuilderContext.cs
- X509Extension.cs
- DBConcurrencyException.cs
- MatrixAnimationUsingPath.cs
- HttpModuleCollection.cs
- SafeSecurityHelper.cs
- HtmlProps.cs
- KeyGesture.cs
- DataGridViewColumnCollection.cs
- XamlTemplateSerializer.cs
- SimpleApplicationHost.cs
- HttpContextBase.cs
- FixedHighlight.cs
- ComContractElementCollection.cs
- CapabilitiesRule.cs
- ButtonChrome.cs
- ListSortDescription.cs
- EventWaitHandle.cs
- XslException.cs
- RangeEnumerable.cs
- Rotation3D.cs
- InternalControlCollection.cs
- ColumnMapTranslator.cs
- MoveSizeWinEventHandler.cs
- AddInIpcChannel.cs
- SoundPlayerAction.cs
- PartBasedPackageProperties.cs
- RTLAwareMessageBox.cs
- PermissionSetTriple.cs
- SourceInterpreter.cs
- CircleHotSpot.cs
- EntitySetBase.cs
- ParserOptions.cs
- MachineKeyConverter.cs
- PropertyValue.cs