Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / UI / RoleServiceManager.cs / 1305376 / RoleServiceManager.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Text; using System.Web.Script.Serialization; using System.Web; using System.Web.ApplicationServices; using System.Web.Resources; using System.Web.Security; [ DefaultProperty("Path"), TypeConverter(typeof(EmptyStringExpandableObjectConverter)) ] public class RoleServiceManager { private bool _loadRoles; private string _path; internal static void ConfigureRoleService(ref StringBuilder sb, HttpContext context, ScriptManager scriptManager, Listproxies) { string roleServiceUrl = null; bool loadRoles = false; RoleServiceManager roleManager; if(scriptManager.HasRoleServiceManager) { roleManager = scriptManager.RoleService; // load roles? loadRoles = roleManager.LoadRoles; // get ScriptManager.Path roleServiceUrl = roleManager.Path.Trim(); if(roleServiceUrl.Length > 0) { roleServiceUrl = scriptManager.ResolveClientUrl(roleServiceUrl); } } // combine proxy ServiceUrls (find the first one that has specified one) if(proxies != null) { foreach(ScriptManagerProxy proxy in proxies) { if(proxy.HasRoleServiceManager) { roleManager = proxy.RoleService; // combine load roles if (roleManager.LoadRoles) { loadRoles = true; } // combine urls roleServiceUrl = ApplicationServiceManager.MergeServiceUrls(roleManager.Path, roleServiceUrl, proxy); } } } RoleServiceManager.GenerateInitializationScript(ref sb, context, scriptManager, roleServiceUrl, loadRoles); } private static void GenerateInitializationScript(ref StringBuilder sb, HttpContext context, ScriptManager scriptManager, string serviceUrl, bool loadRoles) { bool enabled = ApplicationServiceHelper.RoleServiceEnabled; string defaultServicePath = null; if (enabled) { if (sb == null) { sb = new StringBuilder(ApplicationServiceManager.StringBuilderCapacity); } // The default path points to the built-in service (if it is enabled) // Note that the client can't default to this path because it doesn't know what the app root is, we must tell it. // We must specify the default path to the proxy even if a custom path is provided, because on the client they could // reset the path back to the default if they want. defaultServicePath = scriptManager.ResolveClientUrl("~/" + System.Web.Script.Services.WebServiceData._roleServiceFileName); sb.Append("Sys.Services._RoleService.DefaultWebServicePath = '"); sb.Append(HttpUtility.JavaScriptStringEncode(defaultServicePath)); sb.Append("';\n"); } bool pathSpecified = !String.IsNullOrEmpty(serviceUrl); if (pathSpecified) { // DevDiv Bug 71954:When loadRoles="true" and the path is set, we should not load the roles from the default path // loadRoles script always retrieves the roles from default role provider, which is not correct if RolesService // points to non default path. Hence throw when non default path and loadRoles both are specified. if (defaultServicePath == null){ defaultServicePath = scriptManager.ResolveClientUrl("~/" + System.Web.Script.Services.WebServiceData._roleServiceFileName); } if (loadRoles && !String.Equals(serviceUrl, defaultServicePath, StringComparison.OrdinalIgnoreCase)) { throw new InvalidOperationException(AtlasWeb.RoleServiceManager_LoadRolesWithNonDefaultPath); } if (sb == null) { sb = new StringBuilder(ApplicationServiceManager.StringBuilderCapacity); } sb.Append("Sys.Services.RoleService.set_path('"); sb.Append(HttpUtility.JavaScriptStringEncode(serviceUrl)); sb.Append("');\n"); } // Dev10 757178: Do not attempt during design mode. This code isn't important for intellisense anyway. if (loadRoles) { if (scriptManager.DesignMode) { // Dev10 757178: Do not lookup user roles at design time. // But at DesignTime this method is only important because if it produces any init script, // it prompts AddFrameworkScripts to add the MicrosoftAjaxApplicationServices.js script reference. // So just append a comment to ensure at least some script is generated. if (sb == null) { sb = new StringBuilder(ApplicationServiceManager.StringBuilderCapacity); } sb.Append("// loadRoles\n"); } else { string[] roles = Roles.GetRolesForUser(); if(roles != null && roles.Length > 0) { if (sb == null) { sb = new StringBuilder(ApplicationServiceManager.StringBuilderCapacity); } sb.Append("Sys.Services.RoleService._roles = "); sb.Append(new JavaScriptSerializer().Serialize(roles, JavaScriptSerializer.SerializationFormat.JavaScript)); sb.Append(";\n"); } } } } [ DefaultValue(false), Category("Behavior"), NotifyParentProperty(true), ResourceDescription("RoleServiceManager_LoadRoles") ] public bool LoadRoles { get { return _loadRoles; } set { _loadRoles = value; } } [ DefaultValue(""), Category("Behavior"), NotifyParentProperty(true), ResourceDescription("ApplicationServiceManager_Path"), UrlProperty() ] public string Path { get { return _path ?? String.Empty; } set { _path = value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Text; using System.Web.Script.Serialization; using System.Web; using System.Web.ApplicationServices; using System.Web.Resources; using System.Web.Security; [ DefaultProperty("Path"), TypeConverter(typeof(EmptyStringExpandableObjectConverter)) ] public class RoleServiceManager { private bool _loadRoles; private string _path; internal static void ConfigureRoleService(ref StringBuilder sb, HttpContext context, ScriptManager scriptManager, Listproxies) { string roleServiceUrl = null; bool loadRoles = false; RoleServiceManager roleManager; if(scriptManager.HasRoleServiceManager) { roleManager = scriptManager.RoleService; // load roles? loadRoles = roleManager.LoadRoles; // get ScriptManager.Path roleServiceUrl = roleManager.Path.Trim(); if(roleServiceUrl.Length > 0) { roleServiceUrl = scriptManager.ResolveClientUrl(roleServiceUrl); } } // combine proxy ServiceUrls (find the first one that has specified one) if(proxies != null) { foreach(ScriptManagerProxy proxy in proxies) { if(proxy.HasRoleServiceManager) { roleManager = proxy.RoleService; // combine load roles if (roleManager.LoadRoles) { loadRoles = true; } // combine urls roleServiceUrl = ApplicationServiceManager.MergeServiceUrls(roleManager.Path, roleServiceUrl, proxy); } } } RoleServiceManager.GenerateInitializationScript(ref sb, context, scriptManager, roleServiceUrl, loadRoles); } private static void GenerateInitializationScript(ref StringBuilder sb, HttpContext context, ScriptManager scriptManager, string serviceUrl, bool loadRoles) { bool enabled = ApplicationServiceHelper.RoleServiceEnabled; string defaultServicePath = null; if (enabled) { if (sb == null) { sb = new StringBuilder(ApplicationServiceManager.StringBuilderCapacity); } // The default path points to the built-in service (if it is enabled) // Note that the client can't default to this path because it doesn't know what the app root is, we must tell it. // We must specify the default path to the proxy even if a custom path is provided, because on the client they could // reset the path back to the default if they want. defaultServicePath = scriptManager.ResolveClientUrl("~/" + System.Web.Script.Services.WebServiceData._roleServiceFileName); sb.Append("Sys.Services._RoleService.DefaultWebServicePath = '"); sb.Append(HttpUtility.JavaScriptStringEncode(defaultServicePath)); sb.Append("';\n"); } bool pathSpecified = !String.IsNullOrEmpty(serviceUrl); if (pathSpecified) { // DevDiv Bug 71954:When loadRoles="true" and the path is set, we should not load the roles from the default path // loadRoles script always retrieves the roles from default role provider, which is not correct if RolesService // points to non default path. Hence throw when non default path and loadRoles both are specified. if (defaultServicePath == null){ defaultServicePath = scriptManager.ResolveClientUrl("~/" + System.Web.Script.Services.WebServiceData._roleServiceFileName); } if (loadRoles && !String.Equals(serviceUrl, defaultServicePath, StringComparison.OrdinalIgnoreCase)) { throw new InvalidOperationException(AtlasWeb.RoleServiceManager_LoadRolesWithNonDefaultPath); } if (sb == null) { sb = new StringBuilder(ApplicationServiceManager.StringBuilderCapacity); } sb.Append("Sys.Services.RoleService.set_path('"); sb.Append(HttpUtility.JavaScriptStringEncode(serviceUrl)); sb.Append("');\n"); } // Dev10 757178: Do not attempt during design mode. This code isn't important for intellisense anyway. if (loadRoles) { if (scriptManager.DesignMode) { // Dev10 757178: Do not lookup user roles at design time. // But at DesignTime this method is only important because if it produces any init script, // it prompts AddFrameworkScripts to add the MicrosoftAjaxApplicationServices.js script reference. // So just append a comment to ensure at least some script is generated. if (sb == null) { sb = new StringBuilder(ApplicationServiceManager.StringBuilderCapacity); } sb.Append("// loadRoles\n"); } else { string[] roles = Roles.GetRolesForUser(); if(roles != null && roles.Length > 0) { if (sb == null) { sb = new StringBuilder(ApplicationServiceManager.StringBuilderCapacity); } sb.Append("Sys.Services.RoleService._roles = "); sb.Append(new JavaScriptSerializer().Serialize(roles, JavaScriptSerializer.SerializationFormat.JavaScript)); sb.Append(";\n"); } } } } [ DefaultValue(false), Category("Behavior"), NotifyParentProperty(true), ResourceDescription("RoleServiceManager_LoadRoles") ] public bool LoadRoles { get { return _loadRoles; } set { _loadRoles = value; } } [ DefaultValue(""), Category("Behavior"), NotifyParentProperty(true), ResourceDescription("ApplicationServiceManager_Path"), UrlProperty() ] public string Path { get { return _path ?? String.Empty; } set { _path = value; } } } } // 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
- RectangleGeometry.cs
- CustomAttributeSerializer.cs
- As.cs
- CrossAppDomainChannel.cs
- WorkflowMarkupElementEventArgs.cs
- TranslateTransform.cs
- Maps.cs
- StopStoryboard.cs
- ParallelTimeline.cs
- DocumentViewerConstants.cs
- RemotingException.cs
- EllipticalNodeOperations.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- MasterPageCodeDomTreeGenerator.cs
- Inline.cs
- EmptyElement.cs
- XmlSchemaSet.cs
- XPathItem.cs
- ApplyImportsAction.cs
- Win32Exception.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- CompModSwitches.cs
- HTTPRemotingHandler.cs
- GacUtil.cs
- HtmlElementCollection.cs
- WindowsToolbarItemAsMenuItem.cs
- XmlWrappingReader.cs
- ImageFormatConverter.cs
- TerminatorSinks.cs
- SQLBytesStorage.cs
- WebConfigurationHost.cs
- SecurityTokenSerializer.cs
- WebBaseEventKeyComparer.cs
- Funcletizer.cs
- TranslateTransform3D.cs
- TraceSwitch.cs
- StreamSecurityUpgradeInitiator.cs
- SqlRemoveConstantOrderBy.cs
- InlineCollection.cs
- NumericUpDownAccelerationCollection.cs
- XamlTypeMapperSchemaContext.cs
- UnlockInstanceCommand.cs
- RectangleHotSpot.cs
- UnsafeNativeMethods.cs
- RegexCode.cs
- SelectionEditingBehavior.cs
- Int32Rect.cs
- ArraySegment.cs
- SqlConnectionHelper.cs
- OleDbConnection.cs
- ImpersonationContext.cs
- TextShapeableCharacters.cs
- UserNameSecurityTokenParameters.cs
- AmbientLight.cs
- EventLogPermission.cs
- FrameworkReadOnlyPropertyMetadata.cs
- TypeSystem.cs
- AutoResizedEvent.cs
- RenamedEventArgs.cs
- Rules.cs
- ConstraintStruct.cs
- StringFunctions.cs
- SqlCacheDependencySection.cs
- ImpersonationContext.cs
- CheckBoxList.cs
- X509ClientCertificateAuthenticationElement.cs
- GridErrorDlg.cs
- DataGridViewSelectedColumnCollection.cs
- CodeCompiler.cs
- SafeWaitHandle.cs
- xmlfixedPageInfo.cs
- EncoderBestFitFallback.cs
- PerformanceCounterPermissionAttribute.cs
- HandlerBase.cs
- PromptBuilder.cs
- QuadraticBezierSegment.cs
- CollectionConverter.cs
- IsolatedStorage.cs
- XPathMessageFilterElement.cs
- ContentDefinition.cs
- LinearKeyFrames.cs
- AuthenticatedStream.cs
- Int16Storage.cs
- NetworkStream.cs
- LoadGrammarCompletedEventArgs.cs
- RightsManagementPermission.cs
- FixedSOMSemanticBox.cs
- GC.cs
- SqlTypesSchemaImporter.cs
- BitmapSource.cs
- XmlSchemaSimpleContentRestriction.cs
- ToolBarPanel.cs
- RtfToXamlReader.cs
- SqlTypeConverter.cs
- HyperLinkStyle.cs
- Substitution.cs
- ContentOperations.cs
- RegisteredScript.cs
- RectAnimation.cs
- Font.cs