security fehler



  • Hallo,
    ich habe eine Frage, die mir hier vielleicht jemand beantworten kann. Ich möchte in einer Windowsapplikation eine Datei öffnen über openFileDialog. Habe mir eine Form erstellt in Visual Studio 2005 und mir das Tool openFileDialog auf die Form gezogen. Dann habe ich mir nur noch einen Button dazugefügt, der später den Dialog öffnen soll. Da ich mich mit der Materie nicht besonders gut auskenne, habe ich dann mal den Debugger laufen lassen und den unten aufgeführten Fehler erhalten. Kann mir einer sagen, was ich machen muss 😕 ?

    System.Security.SecurityException wurde nicht behandelt.
    Message="Fehler bei der Anforderung des Berechtigungstyps System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089."
    Source="mscorlib"
    StackTrace:
    bei System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
    bei System.Security.CodeAccessPermission.Demand()
    bei System.Windows.Forms.FileDialog.set_FileName(String value)
    bei BW.Form1.InitializeComponent()
    bei BW.Form1..ctor()
    bei BW.Program.Main()
    bei System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
    bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    bei System.Threading.ExecutionContext.runTryCode(Object userData)
    bei System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
    bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
    bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    bei System.Threading.ThreadHelper.ThreadStart()



  • also, ich habe aus dem Formdesigner die Anweisung
    this.openFileDialog1.Filname = "hier stand was unsinniges";
    gelöscht. Dann klappt das Debuggen ohne weitern Code. :p

    Jetzt habe ich den Button programmiert und zwar folgendermaßen:
    openFileDialog1.Filter = "Excel Files|*.xls";
    openFileDialog1.ShowDialog();
    saveFileDialog1.FileName = openFileDialog1.FileName;

    nachdem ich den saveFileDialog aus der Toolbox in meine Form gezogen hatte.
    Und schon wieder erhalte ich den Fehler:

    😡
    System.Security.SecurityException wurde nicht behandelt.
    Message="Fehler bei der Anforderung des Berechtigungstyps System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089."
    Source="mscorlib"
    StackTrace:
    bei System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
    bei System.Security.CodeAccessPermission.Demand()
    bei System.Windows.Forms.IntSecurity.DemandFileIO(FileIOPermissionAccess access, String fileName)
    bei System.Windows.Forms.FileDialog.get_FileName()
    bei BW.Form1.button1_Click(Object sender, EventArgs e)
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
    bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
    bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
    bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
    bei System.Windows.Forms.Application.Run(Form mainForm)
    bei BW.Program.Main()
    bei System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
    bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    bei System.Threading.ExecutionContext.runTryCode(Object userData)
    bei System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
    bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
    bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    bei System.Threading.ThreadHelper.ThreadStart()



  • das heisst nur, dass dein programm keine berechtigung hat, einen zugriff auf das dateisystem durch zu führen. im prinzip handelt es sich nicht unbedingt um einen programmierfehler, du musst einfach dem ausgeführten programm mehr rechte einräumen.



  • danke, für deine Antwort. Aber

    du musst einfach dem ausgeführten programm mehr rechte einräumen

    wie kann ich das?

    Hoffe, dass meine Frage nicht allzu Blöd ist, aber ich beschäftige mich noch nicht so lange damit. 🙄


Anmelden zum Antworten