LginName

mercoledì 19 gennaio 2005 - 17.05

sig Profilo | Junior Member

Avrei bisogno di sapere come posso inserire in una stringa il nome utente loggato in quel momento: pensavo che il component LoginName avesse una proprietà che permettesse di saper il nome utente ma non riesco.

GRAZIE PER L?AIUTO

Brainkiller Profilo | Guru

Ciao,
il .NET Framework ha già classi apposite per gestire l'autenticazione degli utenti.
Ci sono vari tipi di autenticazione ma quello più usato è la Forms Authentication, la classica su pagina Web.

Se tu ti leggi questo interessante articolo:
http://support.microsoft.com/?id=301240
risolvi praticamente tutti i problemi che hai.

Successivamente una volta che l'utente è autenticato se accedi in questo modo:

Context.User.Identity.Name

puoi visualizzare il nome utente utilizzato durante l'autenticazione.
Fammi sapere se ti basta.

ciao
david

sig Profilo | Junior Member

La parte di autenticazione l'avevo già creata mi mancava "solo" Context.User.Identity.Name

GRAZIE

Un'altra necessità che non è inerente ma mi serve:

vorrei creare un CustomValidator per verificare che un certo valore non sia già presente in un DB, come posso fare ????
GRAZIE

sig Profilo | Junior Member

il DB è Access (se serve)

Ancora GRAZIE

sig Profilo | Junior Member

Ho creato la seguente funzionE ma NON funzionA:

void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = true;

string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:/universita/TESI/documenti/repository/codice/prototipo/Data/dataLayer.mdb";
string strSQL = "SELECT codice FROM anagraficaSpecifiche";

OleDbConnection myConn = new OleDbConnection(strDSN);
OleDbCommand myCmd = new OleDbCommand(strSQL, myConn);

myConn.Open();
OleDbDataReader rd = myCmd.ExecuteReader();

while (rd.Read())
{
if (rd.NextResult().Equals(args.Value))
{
args.IsValid = false;
}
}

myConn.Close();



}

sig Profilo | Junior Member

Ho apportato delle modifiche ma non funziona ugualmente

void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = true;

string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:/universita/TESI/documenti/repository/codice/prototipo/Data/dataLayer.mdb";
string strSQL = "SELECT codice FROM anagraficaSpecifiche";

OleDbConnection myConn = new OleDbConnection(strDSN);
OleDbCommand myCmd = new OleDbCommand(strSQL, myConn);

myConn.Open();
OleDbDataReader rd = myCmd.ExecuteReader();

while (rd.Read())
{
if (args.Value.Equals(rd.GetString(0)))
{
args.IsValid = false;
}
}

rd.Close();
myConn.Close();



}

il fatto è che se prova di validare con un controllo stupido (stringa in textbox = "ok) funziona e se provo a riempire un dropdownlist con i valori letti dal reader funziona MA se provo a dunire le due cose non funziona (la validazione non avviene)

Che devo fare ???

GRAZIE

sig Profilo | Junior Member

Il problema non è la funzione ma il fatto che dopo aver validato la textbox il sistema NON si interrompe (come ad esempio fa con un requiredfieldvalidator) ma prosegue cercando di scrivere comunque nel DB provocando la violazione della chiave.

E' possibile far sic he una volta che la validazione abbia dato esito negativo il sistema si blocchi e non prosegua ?????


GRAZIE

sig Profilo | Junior Member

Ho Risolto, magari esiste un metodo + elegante ma la mia soluzione è la seguente (la riporto perchè potrebbe essere utile a qualche altro):

ho inserito il codice che scrive nel DB in un if la cui clausola è Page.IsValid == true

Alla prossima....
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