Ricavare UserId da SqlConnection

martedì 21 ottobre 2008 - 17.01

tarabasch84 Profilo | Junior Member

Ciao ragazzi,
ho la necessità di ottenere e di gestire nel CLR di una applicazioncina, l'utente sql (quindi UserId) che ha istanziato la connessione con il server in quel momento. C'è qualche metodo o qualche funzione atta a raggiungere tale scopo? Spero di essere stato chiaro nella mia richiesta!
Saluti Aldo!
--
Credo che parte della colpa sia di billy...

lbenaglia Profilo | Guru

>ho la necessità di ottenere e di gestire nel CLR di una applicazioncina,
>l'utente sql (quindi UserId) che ha istanziato la connessione
>con il server in quel momento. C'è qualche metodo o qualche funzione
>atta a raggiungere tale scopo?

Ciao Aldo,

Interrogare la funzione ORIGINAL_LOGIN() con una SELECT?

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

tarabasch84 Profilo | Junior Member

Lavoro in LinqToSql quindi non ho la possibilità di utilizzare ORIGINAL_LOGIN(), o meglio potrei avercela se creo una SP nel db che poi dovrei richiamare nel CLR, però non mi sembra la soluzione migliore nel mio caso.
Cerco di essere più preciso fornendoti un caso d'uso:
//Istanzio la connessione
SqlConnection conn = new SqlConnection("DataSource=SERVER InitialCatalog=db UserID=Aldo Password=ciao");
conn.open();
SqlTransaction tran = conn.BeginTransacion();

DataContext db = new DataContext(conn);
db.Transaction = tran;

try
{
//effettuo dell insert in linqtosql e viene generato un errore
}
catch(SqlException SqlEx)
{
tran.Rollback();

//salvo i dettagli dell'errore
Errorlog el = new Errorlog();
el.ErrorMessage = SqlEx.Message;
el.ErrorNumber = SqlEx.Number;
el.ErrorSeverity = SqlEx.Class;
el.ErrorState = SqlEx.State;
el.ErrorTime = DateTime.Now;
el.Username = ?????????????;
db.Errorlog.InsertOnSubmit(el);
db.SubmitChanges();
}

Come risolvo il problema dei punti interrogativi? Da dove lo prendo l'userid sapendo che può essere variabile? (nell'esempio ho utilizzato il mio nome)
Spero di essere stato chiaro nella richiesta!
--
Credo che parte della colpa sia di billy...
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5