Beispiel #1
0
    public static void CheckAcceptPermission(string uriToCheck)
    {
        WebPermission permissionToCheck = new WebPermission();

        permissionToCheck.AddPermission(NetworkAccess.Accept, uriToCheck);
        permissionToCheck.Demand();
    }
    public void CreateUnion()
    {
// <Snippet1>

        // Create a WebPermission.instance.
        WebPermission myWebPermission1 = new WebPermission(NetworkAccess.Connect, "http://www.contoso.com/default.htm");

        myWebPermission1.Demand();

// </Snippet1>

        // Create another WebPermission instance.
        WebPermission myWebPermission2 = new WebPermission(NetworkAccess.Connect, "http://www.adventure-works.com");

        myWebPermission2.Demand();

        // Print the attributes, values and childrens of the XML encoded instances.
        Console.WriteLine("Attributes and values of the first WebPermission are : ");
        PrintKeysAndValues(myWebPermission1.ToXml().Attributes, myWebPermission1.ToXml().Children);

        Console.WriteLine("\nAttributes and values of the second WebPermission are : ");
        PrintKeysAndValues(myWebPermission2.ToXml().Attributes, myWebPermission2.ToXml().Children);

// <Snippet2>

        // Create another WebPermission that is the Union of previous two WebPermission
        // instances.
        WebPermission myWebPermission3 = (WebPermission)myWebPermission1.Union(myWebPermission2);

        Console.WriteLine("\nAttributes and values of the WebPermission after the Union are : ");
        // Display the attributes,values and children.
        Console.WriteLine(myWebPermission3.ToXml().ToString());

// </Snippet2>
    }
Beispiel #3
0
    public void CreateCopy()
    {
// <Snippet1>
        // Create a WebPermission instance.
        WebPermission myWebPermission1 = new WebPermission(PermissionState.None);

        // Allow access to the first set of URL's.
        myWebPermission1.AddPermission(NetworkAccess.Connect, "http://www.microsoft.com/default.htm");
        myWebPermission1.AddPermission(NetworkAccess.Connect, "http://www.msn.com");

        // Check whether all callers higher in the call stack have been granted the permissionor not.
        myWebPermission1.Demand();

// </Snippet1>

// <Snippet2>
        // Create another WebPermission instance that is the copy of the above WebPermission instance.
        WebPermission myWebPermission2 = (WebPermission)myWebPermission1.Copy();

        // Check whether all callers higher in the call stack have been granted the permissionor not.
        myWebPermission2.Demand();

// </Snippet2>
        Console.WriteLine("The Attributes and Values are :\n");
        // Display the Attributes,Values and Children of the XML encoded instance.
        PrintKeysAndValues(myWebPermission1.ToXml().Attributes, myWebPermission1.ToXml().Children);

        Console.WriteLine("\nCopied Instance Attributes and Values are :\n");
        // Display the Attributes,Values and Children of the XML encoded copied instance.
        PrintKeysAndValues(myWebPermission2.ToXml().Attributes, myWebPermission2.ToXml().Children);
    }
        public static string[] ReadFile(string url)
        {
            WebPermission webPerm = new WebPermission(NetworkAccess.Connect, url);

            webPerm.Demand();

            HttpWebRequest   request  = (HttpWebRequest)HttpWebRequest.Create(url);
            HttpWebResponse  response = (HttpWebResponse)request.GetResponse();
            Stream           stream   = response.GetResponseStream();
            StreamReader     sr       = new StreamReader(stream);
            StringCollection strings  = new StringCollection();
            string           line     = sr.ReadLine();

            while (line != null)
            {
                strings.Add(line);
                line = sr.ReadLine();
            }
            sr.Close();
            stream.Close();
            response.Close();
            string[] lines = new string[strings.Count];
            strings.CopyTo(lines, 0);
            return(lines);
        }
        private void DoSubmit()
        {
            try
            {
                using (new WaitCursor())
                {
                    if (!ValidateData())
                    {
                        return;
                    }

                    m_statusBar.Text = "Submitting bug...";

                    WebPermission myWebPermission = new WebPermission(PermissionState.Unrestricted);
                    myWebPermission.Demand();

                    string desc = m_descTextBox.Text;

                    // if the exception was set, append the stack trace
                    if (m_exception != null)
                    {
                        desc += "\n\n-----------------------------------\n";
                        desc += "Exception:\n";
                        desc += m_exception.ToString();
                    }

                    // append versions of all modules
                    desc += "\n\n-----------------------------------\n";
                    desc += "Modules:\n";
                    foreach (ProcessModule module in Process.GetCurrentProcess().Modules)
                    {
                        // Get version info
                        FileVersionInfo fileVersionInfo = module.FileVersionInfo;
                        if (fileVersionInfo.FileVersion == "")
                        {
                            continue;
                        }

                        desc += String.Format("{0} {1}\n",
                                              module.ModuleName, fileVersionInfo.FileVersion);
                    }
                    if (m_anonymous)
                    {
                        string dsc = "Reported by: " + m_txtEmail.Text + "\n" + desc;
                        m_bugService.submitBug(m_mappingName, m_titleTextBox.Text, dsc, m_cmbPriority.SelectedIndex);
                    }
                    else
                    {
                        m_bugService.submitBug(m_mappingName, m_userTextBox.Text, m_passwordTextBox.Text, m_titleTextBox.Text, desc, m_cmbPriority.SelectedIndex);
                    }
                    Close();
                }
            }
            catch (Exception ex)
            {
                m_statusBar.Text = "Bug not submitted.";
                MessageBox.Show("There were errors while submitting this bug\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private static void GetPermissions()
        {
            if (!m_Initialized)
            {
                // test RelectionPermission
                CodeAccessPermission securityTest;
                try
                {
                    securityTest = new ReflectionPermission(PermissionState.Unrestricted);
                    securityTest.Demand();
                    m_ReflectionPermission = true;
                }
                catch
                {
                    // code access security error
                    m_ReflectionPermission = false;
                }

                // test WebPermission
                try
                {
                    securityTest = new WebPermission(PermissionState.Unrestricted);
                    securityTest.Demand();
                    m_WebPermission = true;
                }
                catch
                {
                    // code access security error
                    m_WebPermission = false;
                }

                // test WebHosting Permission (Full Trust)
                try
                {
                    securityTest = new AspNetHostingPermission(AspNetHostingPermissionLevel.Unrestricted);
                    securityTest.Demand();
                    m_AspNetHostingPermission = true;
                }
                catch
                {
                    // code access security error
                    m_AspNetHostingPermission = false;
                }

                m_Initialized = true;

                // Test for Unmanaged Code permission
                try
                {
                    securityTest = new SecurityPermission(SecurityPermissionFlag.UnmanagedCode);
                    securityTest.Demand();
                    m_UnManagedCodePermission = true;
                }
                catch (Exception)
                {
                    m_UnManagedCodePermission = false;
                }
            }
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            //创建一个WebPermission实例,连接到本地
            WebPermission myWebPermissionnl = new WebPermission(NetworkAccess.Connect, "https://brushes8.com");

            myWebPermissionnl.Demand();
            //增加两个访问网络连接
            myWebPermissionnl.AddPermission(NetworkAccess.Connect, "http://www.baidu.com");
            myWebPermissionnl.AddPermission(NetworkAccess.Connect, "http://www.12315.cn");
            myWebPermissionnl.Demand();
            IEnumerator myEnum1 = myWebPermissionnl.ConnectList;

            Console.WriteLine("\n\nThe URIs with Accept permission are :\n");
            while (myEnum1.MoveNext())
            {
                Console.WriteLine("\tThe URI is : " + myEnum1.Current);
            }
        }
Beispiel #8
0
 private static bool CheckWebPermission()
 {
     try
     {
         WebPermission unrestricted = new WebPermission(PermissionState.Unrestricted);
         unrestricted.Demand();
     }
     catch
     {
         return(false);
     }
     return(true);
 }
    public void DisplayAcceptConnect()
    {
        // Create a 'WebPermission' object with permission state set to 'None'.
        WebPermission myWebPermission1 = new WebPermission(PermissionState.None);

        // Allow 'Connect' access right to first set of URL's.
        myWebPermission1.AddPermission(NetworkAccess.Connect, "http://www.contoso.com");
        myWebPermission1.AddPermission(NetworkAccess.Connect, "http://www.adventure-works.com");
        myWebPermission1.AddPermission(NetworkAccess.Connect, "http://www.alpineskihouse.com");

        // Allow 'Accept' access right to second set of URL's.
        myWebPermission1.AddPermission(NetworkAccess.Accept, "http://www.contoso.com");
        myWebPermission1.AddPermission(NetworkAccess.Accept, "http://www.adventure-works.com");
        myWebPermission1.AddPermission(NetworkAccess.Accept, "http://www.alpineskihouse.com");

        // Check whether all callers higher in the call stack have been granted the permission or not.
        myWebPermission1.Demand();

        Console.WriteLine("The Attributes,Values and Children of the 'WebPermission' object are :\n");
        // Display the Attributes,Values and Children of the XML encoded instance.
        PrintKeysAndValues(myWebPermission1.ToXml().Attributes, myWebPermission1.ToXml().Children);

// <Snippet1>

        // Gets all URIs with Connect permission.
        IEnumerator myEnum = myWebPermission1.ConnectList;

        Console.WriteLine("\nThe URIs with Connect permission are :\n");
        while (myEnum.MoveNext())
        {
            Console.WriteLine("\tThe URI is : " + myEnum.Current);
        }

// </Snippet1>

// <Snippet2>

        // Get all URI's with Accept permission.
        IEnumerator myEnum1 = myWebPermission1.AcceptList;

        Console.WriteLine("\n\nThe URIs with Accept permission are :\n");
        while (myEnum1.MoveNext())
        {
            Console.WriteLine("\tThe URI is : " + myEnum1.Current);
        }

// </Snippet2>
    }
    public void CheckSubset()
    {
// <Snippet1>
        // Create a WebPermission.
        WebPermission myWebPermission1 = new WebPermission();

        // Allow Connect access to the specified URLs.
        myWebPermission1.AddPermission(NetworkAccess.Connect, new Regex("http://www\\.contoso\\.com/.*",
                                                                        RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.Singleline));

        myWebPermission1.Demand();

// </Snippet1>

        // Create another WebPermission with the specified URL.
        WebPermission myWebPermission2 = new WebPermission(NetworkAccess.Connect, "http://www.contoso.com");

        // Check whether all callers higher in the call stack have been granted the permission.
        myWebPermission2.Demand();

// <Snippet2>

        WebPermission myWebPermission3 = null;

        // Check which permissions have the Connect access to more number of URLs.
        if (myWebPermission2.IsSubsetOf(myWebPermission1))
        {
            Console.WriteLine("\n WebPermission2 is the Subset of WebPermission1\n");
            myWebPermission3 = myWebPermission1;
        }
        else if (myWebPermission1.IsSubsetOf(myWebPermission2))
        {
            Console.WriteLine("\n WebPermission1 is the Subset of WebPermission2");
            myWebPermission3 = myWebPermission2;
        }
        else
        {
            // Create the third permission.
            myWebPermission3 = (WebPermission)myWebPermission1.Union(myWebPermission2);
        }

// </Snippet2>
        // Prints the attributes , values and childrens of XML encoded instances.

        Console.WriteLine("\nAttributes and Values of third WebPermission instance are : ");
        PrintKeysAndValues(myWebPermission3.ToXml().Attributes, myWebPermission3.ToXml().Children);
    }
Beispiel #11
0
    public void CreateIntersect()
    {
// <Snippet1>
        // Create two WebPermission instances.
        WebPermission myWebPermission1 = new WebPermission();
        WebPermission myWebPermission2 = new WebPermission();

// <Snippet2>

        // Allow access to the first set of resources.
        myWebPermission1.AddPermission(NetworkAccess.Connect, "http://www.contoso.com/default.htm");
        myWebPermission1.AddPermission(NetworkAccess.Connect, "http://www.adventure-works.com/default.htm");

        // Check whether if the callers higher in the call stack have been granted
        // access permissions.
        myWebPermission1.Demand();

// </Snippet2>
        // Allow access right to the second set of resources.
        myWebPermission2.AddPermission(NetworkAccess.Connect, "http://www.alpineskihouse.com/default.htm");
        myWebPermission2.AddPermission(NetworkAccess.Connect, "http://www.baldwinmuseumofscience.com/default.htm");
        myWebPermission2.Demand();

// </Snippet1>

        // Display the attributes , values and childrens of the XML encoded instances.
        Console.WriteLine("Attributes and values of  first 'WebPermission' instance are :");
        PrintKeysAndValues(myWebPermission1.ToXml().Attributes, myWebPermission2.ToXml().Children);

        Console.WriteLine("\nAttributes and values of second 'WebPermission' instance are : ");
        PrintKeysAndValues(myWebPermission2.ToXml().Attributes, myWebPermission2.ToXml().Children);

// <Snippet3>

        // Create a third WebPermission instance via the logical intersection of the previous
        // two WebPermission instances.
        WebPermission myWebPermission3 = (WebPermission)myWebPermission1.Intersect(myWebPermission2);

        Console.WriteLine("\nAttributes and Values of  the WebPermission instance after the Intersect are:\n");
        Console.WriteLine(myWebPermission3.ToXml().ToString());

// </Snippet3>
    }
    public void CreateRegexConstructor()
    {
// <Snippet1>

        // Create an instance of 'Regex' that accepts all  URL's containing the host
        // fragment 'www.contoso.com'.
        Regex myRegex = new Regex(@"http://www\.contoso\.com/.*");

        // Create a WebPermission that gives the permissions to all the hosts containing
        // the same fragment.
        WebPermission myWebPermission = new WebPermission(NetworkAccess.Connect, myRegex);

        // Checks all callers higher in the call stack have been granted the permission.
        myWebPermission.Demand();

// </Snippet1>

        Console.WriteLine("Attribute and Values of WebPermission are : \n");
        // Display the Attributes,Values and Children of the XML encoded copied instance.
        PrintKeysAndValues(myWebPermission.ToXml().Attributes, myWebPermission.ToXml().Children);
    }
Beispiel #13
0
    public static void MySample()
    {
// <Snippet1>

        //  Create a Regex that accepts all URLs containing the host fragment www.contoso.com.
        Regex myRegex = new Regex(@"http://www\.contoso\.com/.*");

        // Create a WebPermission that gives permissions to all the hosts containing the same host fragment.
        WebPermission myWebPermission = new WebPermission(NetworkAccess.Connect, myRegex);

        //Add connect privileges for a www.adventure-works.com.
        myWebPermission.AddPermission(NetworkAccess.Connect, "http://www.adventure-works.com");

        //Add accept privileges for www.alpineskihouse.com.
        myWebPermission.AddPermission(NetworkAccess.Accept, "http://www.alpineskihouse.com/");

        // Check whether all callers higher in the call stack have been granted the permission.
        myWebPermission.Demand();

        // Get all the URIs with Connect permission.
        IEnumerator myConnectEnum = myWebPermission.ConnectList;

        Console.WriteLine("\nThe 'URIs' with 'Connect' permission are :\n");
        while (myConnectEnum.MoveNext())
        {
            Console.WriteLine("\t" + myConnectEnum.Current);
        }

        // Get all the URIs with Accept permission.
        IEnumerator myAcceptEnum = myWebPermission.AcceptList;

        Console.WriteLine("\n\nThe 'URIs' with 'Accept' permission is :\n");

        while (myAcceptEnum.MoveNext())
        {
            Console.WriteLine("\t" + myAcceptEnum.Current);
        }

// </Snippet1>
    }
Beispiel #14
0
        [SuppressMessage("Microsoft.Security", "CA2103:ReviewImperativeSecurity")] // WebPermission based on URI path, but path isn't gonna change during scope of Demand
        private void LoadSync()
        {
            Debug.Assert((uri == null || !uri.IsFile), "we only load streams");

            // first make sure that any possible download ended
            if (!semaphore.WaitOne(LoadTimeout, false))
            {
                if (copyThread != null)
                {
                    copyThread.Abort();
                }
                CleanupStreamData();
                throw new TimeoutException(SR.GetString(SR.SoundAPILoadTimedOut));
            }

            // if we have data, then we are done
            if (streamData != null)
            {
                return;
            }

            // setup the http stream
            if (uri != null && !uri.IsFile && stream == null)
            {
                WebPermission webPerm = new WebPermission(NetworkAccess.Connect, uri.AbsolutePath);
                webPerm.Demand();
                WebRequest webRequest = WebRequest.Create(uri);
                webRequest.Timeout = LoadTimeout;

                WebResponse webResponse;
                webResponse = webRequest.GetResponse();

                // now get the stream
                stream = webResponse.GetResponseStream();
            }

            if (stream.CanSeek)
            {
                // if we can get data synchronously, then get it
                LoadStream(true);
            }
            else
            {
                // the data can't be loaded synchronously
                // load it async, then wait for it to finish
                doesLoadAppearSynchronous = true; // to avoid OnFailed call.
                LoadStream(false);

                if (!semaphore.WaitOne(LoadTimeout, false))
                {
                    if (copyThread != null)
                    {
                        copyThread.Abort();
                    }
                    CleanupStreamData();
                    throw new TimeoutException(SR.GetString(SR.SoundAPILoadTimedOut));
                }

                doesLoadAppearSynchronous = false;

                if (lastLoadException != null)
                {
                    throw lastLoadException;
                }
            }

            // we don't need the worker copyThread anymore
            this.copyThread = null;
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            try
            {
                //demand WebPermissions.
                WebPermission wp    = new WebPermission();
                DnsPermission dperm = new DnsPermission(PermissionState.Unrestricted);
                dperm.Demand();
                wp.Demand();
                //dbase.DbConnection_Progress();
                DbConnection getcon = dbase.GetConnection();
            }
            catch (Exception exx)
            {
                //log the error.
                DataLayer.LogClient("Exception:" + exx.Message + " Stack Trace:" + exx.StackTrace);
                //show a message.
                dbase.WriteDebugMessage(DataLayer.GetExceptionData(exx));
                MessageBox.Show(this, "Error Connecting to the Database:" + exx.Message);
                Close();
            }
            OperatingMode = OperatingModeConstants.OpMode_PinEntry;
            //dbase = new DataLayer(DataLayer.ConnectionTypeConstants.Connection_Client);
            lstLogEntries.ItemsSource = MessageLog;
            //connect to the DB right NAU!
            WorkOrderEntry.MaxLength = dbase.Configuration.WorkOrderMaxLength;

            //make various items collapsed if the config calls for it...
            lstLogEntries.Visibility = !dbase.Configuration.Client_ShowActivityLog ? System.Windows.Visibility.Collapsed : System.Windows.Visibility.Visible;

            UserListExpander.Visibility = !dbase.Configuration.Client_ShowUserList ? System.Windows.Visibility.Collapsed : System.Windows.Visibility.Visible;
            lblLogEntry.Visibility      = lstLogEntries.Visibility;

            if (dbase.Configuration.Client_PasswordPIN)
            {
                lblPIN.Visibility     = System.Windows.Visibility.Collapsed;
                lblPINpass.Visibility = System.Windows.Visibility.Visible;
            }
            //now, bind lstLogEntries to the MESSAGELOG database...

            /*  ObservableCollection<MessageActivityLogItem> GeneralLog = dbase.GetLogMessages("GENERAL");
             * lstLogEntries.ItemsSource=GeneralLog;*/


            //lstLogEntries



            VersionLabel.Content = GetVersionData();


            //set the timer that will periodically (every 20 seconds or so) refresh the listbox.
            //the IDEAL case would be to use some sort of binding but...meh.

            refreshUserListTimer          = new DispatcherTimer();
            refreshUserListTimer.Interval = new TimeSpan(0, 0, 0, 30);
            refreshUserListTimer.Tick    += new EventHandler(refreshUserListTimer_Tick);
            refreshUserListTimer.Start();
            refreshUserListTimer_Tick(refreshUserListTimer, null);
            //now that there is the admin panel, the seeding code is unneeded :D
            try
            {
                //dbase.SeedDB();
            }
            catch (Exception seedexception)
            {
                Debug.Print("Exception while seeding...");
            }
        }