System.Security.SecurityException

martedì 03 marzo 2009 - 14.50

ario Profilo | Junior Member

aiutoooooooooooooooooooooooooooooo!!!!!!!!!!!!!!!!!!
Ho creato una applicazione in Visual Studio 2005
ho la seguente connectionString
Data Source=PCED\SQLEXPRESS;Initial Catalog=ARIO;Integrated Security=True;user id=sa

L' applicazione è residente sul server
Se lancio l' applicazione dal server funziona, se la lancio da una client puntando sul server mi da il seguente errore:

L'inizializzatore di tipo di 'ArioProduzione.ModuloArioProduzione' ha generato un'eccezione. ---> System.Security.SecurityException: Richiesta di autorizzazione di tipo 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' non soddisfatta.

Presumo che sia un problema di permessi, ma cosa devo fare???????????

R3GM4ST3R Profilo | Junior Member

E' un tantino generica la cosa, significa che l'utente con cui stai eseguendo il programma non ha diritti di accesso al database

Ora

a) i due pc sono in un dominio??
b) che autenticazione stai usando su sqlserver?? Autenticazione windows, autenticazione mista?
c) ci sono firewall di mezzo??

Prova 1
Disabilita il firewall sul pc dove c'è sqlserver e riprova a far girare il software su un'altra macchina, se funziona devi aprire le porte dell'sql server nel firewall del computer

Prova 2
Prova a cambiare la connessione levando la userID=sa, e aggiungendo al database l'utente "nomemacchina\nomeutente" (della macchina dove stai eseguendo il programma)

Fammi sapere!

Ciao!


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)

ario Profilo | Junior Member

Utilizzo una autenticazione Windows
FireWall disabilitato
Ho provato ha mettere nella ConnectionString pced/administrator (macchina da dove lancio il link al programma)

Data Source=SERVER\SQLEXPRESS;Initial Catalog=ARIO;Integrated Security=True

Se lancio il programma (collegamento al server \\ario\arioproduzionenet\arioproduzione.exe) mi da sempre lo stesso errore

S'è forse qualche attributo da settare via sw per la connessione al database????


aiuto!!!!!!!!!!!!!!!!!!!!!!

ario Profilo | Junior Member

mi Correggo l' autenticazione è mista

R3GM4ST3R Profilo | Junior Member

Ciao!
ah ok, autenticazione mista...bene...ora procediamo come segue
Chiamerò server, il pc dove c'è SQLSERVERExpress e Client il pc dove girerà il programma.
Innanzitutto, hai installato sul server l'interfaccia di management di sqlserverexpress2005?
In caso negativo
http://www.microsoft.com/Downloads/details.aspx?familyid=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&displaylang=it

Una volta scaricata ed installata l'interfaccia di gestione, ti connetti al server, dalla treeview che ti trovi sulla sinistra vai su
>Protezione
e successivamente su
>Account di accesso
click di destro
>Nuovo account...

Crei un nuovo account utente come metodo di autenticazione usa
>Autenticazione di SQL Server
(dopo aver inserito Nome Account di accesso e le password, dai OK ed esci dalla schermata)

dopodichè sempre nella treeview, apri la sezione database, una volta trovato il database che usa la tua applicazione, individua nella treeview la sezione protezione di quel database, a quel punto seleziona utenti click destro Nuovo Utente...

A quel punto si apre una nuova finestra, ora clicca sul bottone con i puntini per selezionare un utente esistente nel database (recuperi l'utente immesso in precedenza)
Una volta selezionato l'utente, nella seconda listbox, quella dei ruoli del database spunti la casellina db_owner e confermi le modifiche.

A questo punto l'utente per accedere al database in modalità DIO è stato creato.
Ora devi inserire username e password nella stringa di connessione nel codice del tuo programma del tipo
>Data Source=server\sqlexpress;Initial Catalog=database;User Id=Username;Password=Password;Integrated Security=SSPI;

Ed in teoria il gioco è fatto!

Fammi sapere com'è andata!

P.S. Non è una buona idea far partire un software da un percorso di rete...ti consiglio di copiarlo in locale!

Ciao!

P.P.S. Se non dovesse funzionare nemmeno così, prova a verificare se almeno la parte di SQLServer è corretta, ossia vai sul client e provi ad impostare ODBC che punta al database sul Server, andando su
>Pannello di controllo>Strumenti di amministrazione>Origini dati (ODBC)
Se da ODBC la connessione con i parametri che hai appena impostato funziona, probabilmente il problema non è la connessione al database.


ario Profilo | Junior Member

Sul server è gia installato sql server 2005
Su Server\sqlexpress esiste gia account di accesso 'sa'
Sul mio DataBase esiste gia un utente dbo sull' account 'sa'

a questo punto non capisco cosa possa essere, l' unica cosa è lanciare il programma in locale....


Grazie 1.000

R3GM4ST3R Profilo | Junior Member

Si ma l'account utente "sa" ha anche una password, che devi passare nella stringa di connessione, e cmq accedere come "sa" da un programma esterno non è corretto, e tra le altre cose non sono nemmeno sicuro che lo si possa usare come account di accesso ai dati da una macchina remota, bisognerebbe guardare sull'MSDN.
Cmq prova le altre due cose...

Ciao!


Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. (Albert Einstein)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5