RoleServiceManager.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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, List proxies) {
            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.
// 
//----------------------------------------------------------------------------- 

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, List proxies) {
            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.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK