Security Exception

Hallo zusammen

Ich wollte in VB.NET einen Zugriff auf eine SQL Datenbank programmieren. Wenn ich jedoch die Connection öffne erhalte ich folgenden Fehler:

Anforderung des Berechtigungstyps System.Data.SqlClient.SqlClientPermission, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ist fehlgeschlagen

Ich habe auch schon mit dem .NET Framework Konfiguration-Tool jegliche Rechte auf Full Trust gesetzt, doch es hilft nichts.

Hat irgendjemand eine Ahnung woran das liegen könnte!? War schon auf diversen Seiten im Internet doch ich finde keine Antwort auf dieses Problem.

Danke für Eure Hilfe.

Gruss
Martin

Sali MaHo

  • Kannst Du mal deinen Connectionstring hier posten?
  • Gehst Du via WebService auf den SQLServer?
  • Wie ist die Architektur?

Gruss

Ich habe auch schon mit dem .NET Framework Konfiguration-Tool
jegliche Rechte auf Full Trust gesetzt, doch es hilft nichts.

Da solltest du auch nicht schrauben :smile:

Hat irgendjemand eine Ahnung woran das liegen könnte!? War
schon auf diversen Seiten im Internet doch ich finde keine
Antwort auf dieses Problem.

Danke für Eure Hilfe.

Gruss
Martin

Hi GiFa

Also hier mein Connection String:
„Data Source=ServerName;Initial Catalog=DatabaseName;Integrated Security=True“

Ich schreibe ein WebPart für den SPPS 2003.
Beim laden des WebParts wird eine „RenderWebpart“ Funktion aufgerufen, welche den HTML String zur Anzeige des Ergebnisses an den SPPS zurückgibt. In dieser Funktion rufe ich eine neue Methode auf welche die Connection zum SQL Server herstellen sollte.

m_objCommand = New SqlClient.SqlCommand(m_strSQLStatement) m_objCommand.Connection = New SqlClient.SqlConnection(m_strCnn)
m_objCommand.CommandTimeout = 15
m_objCommand.CommandType = CommandType.Text
m_objCommand.Connection.Open()

Ich greife direkt auf den SQL Server zu. Dieser ist auf der gleichen Client wie der SPPS 2003. Das einzige was nicht auf diesem Server liegt sind die Konfigurationsdatenbanken für SPPS 2003.

Gruss
Martin

Hmm… ein paar weitere Fragen

  • Ist der WebPart eine asmx oder aspx datei?
  • Hast du einen Win2000 oder Win2003 Server?
  • Was geschieht wenn Du statt Trusted Connection mit sa drauf gehst?

gruss

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hmm… ein paar weitere Fragen

  • Ist der WebPart eine asmx oder aspx datei?

Es ist schlussendlich eine dll Datei welche einen HTML String zurückgibt. Dieser String wird dann in eine .aspx Datei eingebunden.

  • Hast du einen Win2000 oder Win2003 Server?

Win 2003 Server

  • Was geschieht wenn Du statt Trusted Connection mit sa drauf

Es kommt der gleiche Fehler.

gehst?

gruss

Ok. Gröberes Probelm :smile:

Wieso es mit sa nicht geht ist mir schleierhaft (Du hast den Server schon im Mixed Mode installiert oder?). Heisst für mich dass es nicht unbedingt SQLServer permission probleme sind.

  • Was sagt der SQLProfiler wenn du Tracen tust? Wird versucht eine Connection aufzubauen?
  • Liegt die DLL lokal auf dem Server oder auf einem Share?
  • Wenn Du der gleiche Code in eine VB.NET .exe einpakst geschieht der gleiche Fehler?

gruss,

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ok. Gröberes Probelm :smile:

Wieso es mit sa nicht geht ist mir schleierhaft (Du hast den
Server schon im Mixed Mode installiert oder?). Heisst für mich
dass es nicht unbedingt SQLServer permission probleme sind.

Ja den SQL Server habe ich im Mixed Mode installiert.

  • Was sagt der SQLProfiler wenn du Tracen tust? Wird versucht
    eine Connection aufzubauen?

Nein, es wird nie versucht eine Connection herzustellen. Der Profiler spricht überhaupt nicht an.

  • Liegt die DLL lokal auf dem Server oder auf einem Share?

Um ein Portal zu erstellen musste ich im IIS eine Website kreiren. Das DLL liegt im Virtuellen Verzeichnis dieser Website.

  • Wenn Du der gleiche Code in eine VB.NET .exe einpakst
    geschieht der gleiche Fehler?

Nein. Wenn ich eine Windows Application erstelle, welche die genau gleiche Connection aufbauen will dann funktioniert es problemlos…

gruss,

Hmm… ein paar weitere Fragen

  • Ist der WebPart eine asmx oder aspx datei?

Es ist schlussendlich eine dll Datei welche einen HTML String
zurückgibt. Dieser String wird dann in eine .aspx Datei
eingebunden.

  • Hast du einen Win2000 oder Win2003 Server?

Win 2003 Server

  • Was geschieht wenn Du statt Trusted Connection mit sa drauf

Es kommt der gleiche Fehler.

gehst?

gruss

  • Liegt die DLL lokal auf dem Server oder auf einem Share?

Um ein Portal zu erstellen musste ich im IIS eine Website
kreiren. Das DLL liegt im Virtuellen Verzeichnis dieser
Website.

mach ein unterverzeichnis bin und schmeiss mal die dll da rein ?

Ist schon in einem Bin verzeichnis…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

bin überfragt…

was für eine exeption wird throwed? steht das ev. etwas genaueres?

gruss

Das ist die vollständige Fehlermeldung:

„System.Security.SecurityException: Anforderung des Berechtigungstyps System.Data.SqlClient.SqlClientPermission, System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ist fehlgeschlagen.
at System.Security.CodeAccessSecurityEngine.CheckHelper(PermissionSet grantedSet, PermissionSet deniedSet, CodeAccessPermission demand, PermissionToken permToken)
at System.Security.CodeAccessSecurityEngine.Check(PermissionToken permToken, CodeAccessPermission demand, StackCrawlMark& stackMark, Int32 checkFrames, Int32 unrestrictedOverride)
at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark)
at System.Security.CodeAccessPermission.Demand()
at System.Data.SqlClient.SqlConnectionString.Demand(SqlConnectionString constr)
at System.Data.SqlClient.SqlConnection.Open()
at WebPartTest.WebPartTest.GetSQLData()“

hallo martin,

ist der zugriff deines dot-net users auf den mdf-file(filesystem) der datenbank gewährleistet?

mit asp.net hat ich son problem, obwohls mit vb.net funtkioniert hat…

mal ne blöde idee -

gruß

rasta

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hallo martin,

ist der zugriff deines dot-net users auf den
mdf-file(filesystem) der datenbank gewährleistet?

Ja hat Rechte darauf…

mit asp.net hat ich son problem, obwohls mit vb.net
funtkioniert hat…

mal ne blöde idee -

gruß

rasta

Das ist die vollständige Fehlermeldung:

„System.Security.SecurityException: Anforderung des
Berechtigungstyps System.Data.SqlClient.SqlClientPermission,
System.Data, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089 ist fehlgeschlagen.
at
System.Security.CodeAccessSecurityEngine.CheckHelper(PermissionSet
grantedSet, PermissionSet deniedSet, CodeAccessPermission
demand, PermissionToken permToken)
at
System.Security.CodeAccessSecurityEngine.Check(PermissionToken
permToken, CodeAccessPermission demand, StackCrawlMark&
stackMark, Int32 checkFrames, Int32 unrestrictedOverride)
at
System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission
cap, StackCrawlMark& stackMark)
at System.Security.CodeAccessPermission.Demand()
at
System.Data.SqlClient.SqlConnectionString.Demand(SqlConnectionString
constr)
at System.Data.SqlClient.SqlConnection.Open()
at WebPartTest.WebPartTest.GetSQLData()“

hast du es rausgefunden?

hast du es rausgefunden?

Ja habe ich.
Es war eine Einstellungen im Web.Config File des Virtuellen Servers. Das Trust Level stand da auf WSS_Minimal. Ich habe nun ein eigenes Trust-Level-File erstellt und dann das Trust Level im Web.Config auf mein neues Trust-Level-File gesetzt.

du maschine :smile:

wo hast du das gefunden?

gruss

du maschine :smile:

wo hast du das gefunden?

gruss

Wir sind per Zufall auf einen Eintrag im MSDN auf der Microsoft Page gestossen!

Wir sind per Zufall auf einen Eintrag im MSDN auf der
Microsoft Page gestossen!

kannst du mal den link posten?

Wir sind per Zufall auf einen Eintrag im MSDN auf der
Microsoft Page gestossen!

kannst du mal den link posten?

OK hier ist er…
http://msdn.microsoft.com/library/default.asp?url=/l…