Code:
/ DotNET / DotNET / 8.0 / untmp / Orcas / RTM / ndp / fx / src / xsp / System / Web / Extensions / ui / RoleServiceManager.cs / 1 / 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.Security.Permissions; using System.Text; using System.Web.Script.Serialization; using System.Web; using System.Web.ApplicationServices; using System.Web.Resources; using System.Web.Security; [ AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal), 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(JavaScriptString.QuoteString(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(JavaScriptString.QuoteString(serviceUrl)); sb.Append("');\n"); } if(loadRoles) { string[] roles = Roles.GetRolesForUser(); if(roles != null && roles.Length > 0) { if (sb == null) { sb = new StringBuilder(ApplicationServiceManager.StringBuilderCapacity); } sb.Append("Sys.Services.RoleService._roles = Sys.Serialization.JavaScriptSerializer.deserialize('"); sb.Append(JavaScriptString.QuoteString(JavaScriptSerializer.SerializeInternal(roles))); 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- indexingfiltermarshaler.cs
- PingReply.cs
- XmlSchemaProviderAttribute.cs
- NonParentingControl.cs
- TypeInformation.cs
- Serializer.cs
- ToolStripSeparator.cs
- IndicFontClient.cs
- PropertyGridCommands.cs
- HeaderedContentControl.cs
- EditCommandColumn.cs
- _DynamicWinsockMethods.cs
- mansign.cs
- VirtualDirectoryMappingCollection.cs
- FloatUtil.cs
- GetParentChain.cs
- DynamicResourceExtensionConverter.cs
- RedistVersionInfo.cs
- RegexCaptureCollection.cs
- CounterCreationData.cs
- FilteredDataSetHelper.cs
- BitmapCodecInfoInternal.cs
- ColorAnimationUsingKeyFrames.cs
- DeflateStream.cs
- DateTimeConverter.cs
- Encoder.cs
- XmlChildNodes.cs
- SchemaManager.cs
- nulltextcontainer.cs
- ReferenceAssemblyAttribute.cs
- MediaElementAutomationPeer.cs
- ListViewItemEventArgs.cs
- DefinitionBase.cs
- NumberFormatInfo.cs
- HitTestParameters.cs
- FloaterBaseParaClient.cs
- CodeSubDirectoriesCollection.cs
- GestureRecognizer.cs
- WindowsSolidBrush.cs
- URLMembershipCondition.cs
- IsolatedStorageFile.cs
- PersonalizationProviderHelper.cs
- sqlpipe.cs
- XmlAnyAttributeAttribute.cs
- ConnectionInterfaceCollection.cs
- DataGridViewCellEventArgs.cs
- GridItemPatternIdentifiers.cs
- EntityTypeBase.cs
- HttpInputStream.cs
- CommandID.cs
- UnsafeNativeMethods.cs
- FileUpload.cs
- MouseGestureConverter.cs
- AuthenticationConfig.cs
- IndicCharClassifier.cs
- ElementNotAvailableException.cs
- SqlServer2KCompatibilityAnnotation.cs
- RSAProtectedConfigurationProvider.cs
- CellConstantDomain.cs
- DescendentsWalker.cs
- AddInProcess.cs
- WinFormsSecurity.cs
- BufferBuilder.cs
- WizardForm.cs
- RestHandlerFactory.cs
- UnaryQueryOperator.cs
- WinEventHandler.cs
- DataTablePropertyDescriptor.cs
- EntityParameterCollection.cs
- DbMetaDataCollectionNames.cs
- FreezableCollection.cs
- ConnectionPointCookie.cs
- Matrix3D.cs
- CompilationSection.cs
- ResourceExpressionBuilder.cs
- StringUtil.cs
- SafeHandles.cs
- HtmlSelect.cs
- HttpListenerRequest.cs
- ProviderUtil.cs
- NetworkStream.cs
- EventPropertyMap.cs
- FormClosingEvent.cs
- StatusStrip.cs
- CopyOnWriteList.cs
- TextTreeFixupNode.cs
- DateTimePicker.cs
- InkCollectionBehavior.cs
- ContentElement.cs
- DataObject.cs
- TimeBoundedCache.cs
- DataGridItem.cs
- RemoteWebConfigurationHost.cs
- MDIControlStrip.cs
- QueryConverter.cs
- BinHexEncoder.cs
- Transform3DGroup.cs
- EntityDataSourceMemberPath.cs
- SqlClientWrapperSmiStreamChars.cs
- DesigntimeLicenseContext.cs