예제 #1
0
        /// <summary>
        /// Gets the named permission set from the permissionset collection defined in the configuration file.
        /// </summary>
        /// <param name="typeName">The name of the type defined in the configuration file.</param>
        /// <returns>A permission set based on the collection of permissions in the defined permission set.</returns>
        public PermissionSet GetAssemblyPermissions(MySQLAsembly typeName)
        {
            PermissionSet permissions = new PermissionSet(PermissionState.None);

            permissions.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));

            if (!string.IsNullOrEmpty(typeName.permissions))
            {
                if (typeName.permissions.Equals("fulltrust", StringComparison.InvariantCultureIgnoreCase))
                {
                    // override the default permission set with a full trust permission set.
                    permissions = new PermissionSet(PermissionState.Unrestricted);
                }
                else
                {
                    var section2  = System.Configuration.ConfigurationManager.GetSection("mysqlassemblies") as MySQLAssemblyList;
                    var permlists = section2.permissionsetscollection;
                    var permlist  = permlists[typeName.permissions];

                    // For now we're adding all of the permissions out of the box for System, System.Configuration, System.Data. and System.Xml
                    // This is heavy handed, but aides in beta testing. By the end we should have pared this down to a handful of useful permissions
                    // ie. UI is not needed.
                    foreach (MySQLPermission permission in permlist.permissionscollection)
                    {
                        switch (permission.Name)
                        {
                        case "AspNetHostingPermission": permissions.AddPermission(new System.Web.AspNetHostingPermission(PermissionState.Unrestricted)); break;

                        //case "Collaboration": permissions.AddPermission(new System.Net.PeerToPeer.Collaboration.PeerCollaborationPermission(PermissionState.Unrestricted));
                        //    break;
                        case "ConfigurationPermission": permissions.AddPermission(new System.Configuration.ConfigurationPermission(PermissionState.Unrestricted));
                            break;

                        //case "DataProtectionPermission": permissions.AddPermission(new System.Security.Permissions.DataProtectionPermission(PermissionState.Unrestricted));
                        //    break;
                        case "OdbcPermission": permissions.AddPermission(new System.Data.Odbc.OdbcPermission(PermissionState.Unrestricted));
                            break;

                        case "OleDbPermission": permissions.AddPermission(new System.Data.OleDb.OleDbPermission(PermissionState.Unrestricted));
                            break;

                        case "SqlClientPermission": permissions.AddPermission(new System.Data.SqlClient.SqlClientPermission(PermissionState.Unrestricted));
                            break;

                        //case "DistributedTransactionPermission": permissions.AddPermission(new System.Transactions.DistributedTransactionPermission(PermissionState.Unrestricted));
                        //    break;
                        case "EnvironmentPermission": permissions.AddPermission(new System.Security.Permissions.EnvironmentPermission(PermissionState.Unrestricted));
                            break;

                        case "FileDialogPermission": permissions.AddPermission(new System.Security.Permissions.FileDialogPermission(PermissionState.Unrestricted));
                            break;

                        case "FileIOPermission": permissions.AddPermission(new System.Security.Permissions.FileIOPermission(PermissionState.Unrestricted));
                            break;

                        case "GacIdentityPermission": permissions.AddPermission(new System.Security.Permissions.GacIdentityPermission(PermissionState.Unrestricted));
                            break;

                        case "IsolatedStorageFilePermission": permissions.AddPermission(new System.Security.Permissions.IsolatedStorageFilePermission(PermissionState.Unrestricted));
                            break;

                        case "KeyContainerPermission": permissions.AddPermission(new System.Security.Permissions.KeyContainerPermission(PermissionState.Unrestricted));
                            break;

                        //case "MediaPermission": permissions.AddPermission(new System.Security.Permissions.MediaPermission(PermissionState.Unrestricted));
                        //     break;
                        //case "MessageQueuePermission": permissions.AddPermission(new System.Messaging.MessageQueuePermission(PermissionState.Unrestricted));
                        //     break;
                        case "NetworkInformationPermission": permissions.AddPermission(new System.Net.NetworkInformation.NetworkInformationPermission(PermissionState.Unrestricted));
                            break;

                        //case "OraclePermission": permissions.AddPermission(new System.Data.OracleClient.OraclePermission(PermissionState.Unrestricted));
                        //     break;
                        //case "PeerCollaborationPermission": permissions.AddPermission(new System.Net.PeerToPeer.Collaboration.PeerCollaborationPermission(PermissionState.Unrestricted));
                        //    break;
                        //case "PnrpPermission": permissions.AddPermission(new System.Net.PeerToPeer.PnrpPermission(PermissionState.Unrestricted));
                        //     break;
                        //case "PrintingPermission": permissions.AddPermission(new System.Drawing.Printing.PrintingPermission(PermissionState.Unrestricted));
                        //     break;
                        case "PublisherIdentityPermission": permissions.AddPermission(new System.Security.Permissions.PublisherIdentityPermission(PermissionState.Unrestricted));
                            break;

                        case "ReflectionPermission": permissions.AddPermission(new System.Security.Permissions.ReflectionPermission(PermissionState.Unrestricted));
                            break;

                        case "RegistryPermission": permissions.AddPermission(new System.Security.Permissions.RegistryPermission(PermissionState.Unrestricted));
                            break;

                        case "EventLogPermission": permissions.AddPermission(new System.Diagnostics.EventLogPermission(PermissionState.Unrestricted));
                            break;

                        case "PerformanceCounterPermission": permissions.AddPermission(new System.Diagnostics.PerformanceCounterPermission(PermissionState.Unrestricted));
                            break;

                        //case "DirectoryServicesPermission": permissions.AddPermission(new System.DirectoryServices.DirectoryServicesPermission(PermissionState.Unrestricted));
                        //     break;
                        //case "ServiceControllerPermission": permissions.AddPermission(new System.ServiceProcess.ServiceControllerPermission(PermissionState.Unrestricted));
                        //     break;
                        case "SecurityPermission": permissions.AddPermission(new System.Security.Permissions.SecurityPermission(PermissionState.Unrestricted));
                            break;

                        case "SiteIdentityPermission": permissions.AddPermission(new System.Security.Permissions.SiteIdentityPermission(PermissionState.Unrestricted));
                            break;

                        case "SmtpPermission": permissions.AddPermission(new System.Net.Mail.SmtpPermission(PermissionState.Unrestricted));
                            break;

                        case "SocketPermission": permissions.AddPermission(new System.Net.SocketPermission(PermissionState.Unrestricted));
                            break;

                        case "StorePermission": permissions.AddPermission(new System.Security.Permissions.StorePermission(PermissionState.Unrestricted));
                            break;

                        case "StrongNameIdentityPermission": permissions.AddPermission(new System.Security.Permissions.StrongNameIdentityPermission(PermissionState.Unrestricted));
                            break;

                        //case "TypeDescriptorPermission": permissions.AddPermission(new System.Security.Permissions.TypeDescriptorPermission(PermissionState.Unrestricted));
                        //     break;
                        case "UIPermission": permissions.AddPermission(new System.Security.Permissions.UIPermission(PermissionState.Unrestricted));
                            break;

                        case "UrlIdentityPermission": permissions.AddPermission(new System.Security.Permissions.UrlIdentityPermission(PermissionState.Unrestricted));
                            break;

                        //case "WebBrowserPermission": permissions.AddPermission(new System.Security.Permissions.WebBrowserPermission(PermissionState.Unrestricted));
                        //     break;
                        case "WebPermission": permissions.AddPermission(new System.Net.WebPermission(PermissionState.Unrestricted));
                            break;
                        //case "XamlLoadPermission": permissions.AddPermission(new System.Xaml.Permissions.XamlLoadPermission(PermissionState.Unrestricted));
                        //     break;

                        default:
                            break;
                        }
                    }
                }
            }

            return(permissions);
        }
예제 #2
0
 public void Add(MySQLAsembly item)
 {
     base.BaseAdd(item);
 }