Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


SecirityException vid OleDbConnection.Open

Postades av 2005-02-18 12:08:40 - Anders Vikström, i forum asp.net generellt, Tråden har 5 Kommentarer och lästs av 517 personer

Hej,

Jag får ett SecirityException som jag inte riktigt vet hur jag skall få bukt med. Den inträffar när jag skall öppna en OleDbConnection och dess meddelande är "Request failed". Genom att titta på anropsstacken kan jag se att anropet går via en av våra "generella" klassbibliotet. Detta klassbibliotek använder sig av en rad attribut på assembly-nivå för Code Access Secirity (CAS):

[assembly: SecurityPermission(SecurityAction.RequestOptional, UnmanagedCode=true)]
[assembly: ReflectionPermission(SecurityAction.RequestOptional, MemberAccess=true, TypeInformation=true)]
[assembly: FileIOPermission(SecurityAction.RequestOptional, Unrestricted=true)]
[assembly: System.Web.AspNetHostingPermission(SecurityAction.RequestOptional, Unrestricted=true)]
[assembly: System.Data.OleDb.OleDbPermission(SecurityAction.RequestOptional, Unrestricted=true)]


Jag är verkligen inte hemma på CAS, men jag misstänker att det är något som saknas i denna lista. Denna misstanke blir inte mindre av att jag kan utföra samma sak utan problem om jag bara undviker att gå via klassbiblioteket. Några förslag på vad det kan vara?


Svara

Sv: SecirityException vid OleDbConnection.Open

Postades av 2005-02-21 10:34:57 - Pelle Johansson

Det deklarativa som står är Unrestricted=true, vilket inte borde ge dig fel. Men det kan även finnas imperlativa regler längre ner i koden som kan ställa till det. Du kanske måste ta en titt där. Det kan till och med vara så att du inte har rättigheter i databasen. Det beror helt på hur systemet är designat och väldigt svårt att utifrån detta säga vad som inte uppfyller kraven.

Fråga er designer, denne är nog den som bäst kan svara på detta.


Svara

Sv:SecirityException vid OleDbConnection.Open

Postades av 2005-02-21 12:55:12 - Anders Vikström

Hej Pelle,

Jag har skapat ett litet testprogram bestående enbart av följande kod:

using System;
using System.Data.OleDb;
using System.Security.Permissions;

[assembly: FileIOPermission(SecurityAction.RequestOptional, Unrestricted=true)]

namespace ConsoleApplication1
{
    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            OleDbConnection conn = new OleDbConnection(@"file name=C:\database.udl");
            conn.Open();
        }
    }
}


Denna kod kommer att ge samma security exception (Request failed) som i den "riktiga" applikationen. Tar jag bort assembly-attributet går allt bra. Byter jag ut det mot ett annat säkerhets-attribut får jag samma exception. Om jag specar ett säkerhetsattribut (på assembly-nivå) måste jag tydligen även speca ett som tillåter mig att öppna min connection. Frågan är vilket.

Jag har prövat med

[assembly: OleDb.OleDbPermission(SecurityAction.RequestOptional, Unrestricted=true)]


och även (som attribut på Main-funktionen)

[OleDbPermission(SecurityAction.Demand, ConnectionString=@"file name=C:\database.udl")]


men utan framgång. Vad är det för magi som måste till för att få detta att fungera???


Svara

Sv: SecirityException vid OleDbConnection.Open

Postades av 2005-02-21 13:52:21 - Pelle Johansson

Kolla i (caspol.exe) och se vilka beroenden som finns och krävs. Det är också så att det konto som kör programmet måste vara tilldelad de grupper som krävs i applikationen och dess tillhörande assemblys.


Svara

Sv:SecirityException vid OleDbConnection.Open

Postades av 2005-02-23 12:31:22 - Anders Vikström

Huga! Det där caspol.exe var ju inte att leka med. Jag tror jag behöver gå någon kurs eller nått för att få kläm på det här med CAS. Vi har dock löst det "akuta" problemet genom att ändra så att anrop för att öppna connection inte längre går via klassen i det generella biblioteket.

Men, det verkar som om vi skulle ha kunnat ändrat från:

[assembly: FileIOPermission(SecurityAction.RequestOptional, Unrestricted=true)]


till:

[assembly: FileIOPermission(SecurityAction.RequestMinimum, Unrestricted=true)]


Detta gjorde iallafall susen i min lilla konsolapplikation. Jag gissar att Connection.Open inte fick läsa UDL-filen annars, men hur man skall veta sådant fattar jag inte.

Finns det verkligen inte något sätt att se vilket permission som saknas när man får ett SecirityException? Detta är ju inte helt lätt att gissa sig till, även givet informationen från caspol.exe. Att gå den vägen känns "bakvänt" tycker jag.


Svara

Sv: SecirityException vid OleDbConnection.Open

Postades av 2005-02-23 12:37:27 - Pelle Johansson

Håller med. Håller just på att plugga inför den och det är minst sagt mycket att hålla reda på.
Skönt det löste sig i alla fall..


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 602
27 953
271 705
5 810
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies