Avatar billede justincase1089 Nybegynder
04. oktober 2006 - 12:44 Der er 1 kommentar og
1 løsning

security oroblem med reflection og UITypeEditor

Hej

Jeg har en exe fil med følgende kode i:

Assembly assembly = Assembly.LoadFrom(textBox1.Text);
object _configurationClass = assembly.CreateInstance("ClassLibrary1.Class1");
propertyGrid1.SelectedObject = _configurationClass;

Og en dll med følgende i:

    public class Class1
    {
        private string _test = "";
        [EditorAttribute(typeof(AAA), typeof(System.Drawing.Design.UITypeEditor)),
        CategoryAttribute(""),
        DefaultValueAttribute(""),
        DescriptionAttribute("test"),
        BrowsableAttribute(true)]
        public string Test
        {
            get
            {
                try
                {
                    AAA.BBB = "ClassNameClassName";
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
                return _test;
            }
            set { _test = value; }
        }

        public class AAA : UITypeEditor
        {
            public static string BBB = "";

            public override object EditValue(ITypeDescriptorContext context, IServiceProvider sp, object value)
            {
                return BBB;
            }

            public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
            {
                return System.Drawing.Design.UITypeEditorEditStyle.Modal;
            }
        }
    }

Dllens formål er at indeholde en klasse, hvis properties skal populere propertygriddet i main exe filen. Flere af propertiene skal have cursom editors, i dette eksempel er klassen AAA sådan en. Dllen ligger på en webserver og instantieres i exe filen igennem f.eks urlen http://localhost/Test/ClassLibrary1.dll.

Det virker fint på min maskine, men når jeg flytter exen og dllen til en anden maskine i et virtuelt directory kan jeg ikke få lov til at gøre det. Propertygriddet kommer simpelt hen til at indeholde "Request Failed." for propertien Test. Hvis jeg udkommenterer linien AAA.BBB = "SomeText"; virker det fint og hvis jeg referere til Assembliet med C:\Inetpub\wwwroot\Test\ClassLibrary1.dll virker det også fint. problemet har efter alt at dømme noget at gøre med permissions, men jeg ved ikke hvordan jeg skal give den lov til at gøre det jeg gerne vil. Begge filer er strong named og har "Enable ClickOnce Security Settings" slået til.

MVH
  Justin Case
Avatar billede justincase1089 Nybegynder
17. april 2007 - 12:47 #1
Hmm, æv
Avatar billede justincase1089 Nybegynder
17. april 2007 - 12:47 #2
Hmm, æv
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester