E 'ok per utilizzare .NET MembershipProvider di avere più “applicazioni” virtuali su una sola applicazione web?
-
29-08-2019 - |
Domanda
Voglio costruire applicazioni web asp.net a portale da zero e stavo guardando asp.net MembershipProvider come un modo standard per la gestione dell'utente. Ho creato il mio fornitore che eredita da SqlMembershipProvider e sovrascrivere il metodo ValidateUser:
public override bool ValidateUser(string username, string password)
{
string temp = ApplicationName;
List<MtscApp> allApps = GetAllApplications();
foreach (MtscApp app in allApps)
{
ApplicationName = app.Name;
Roles.ApplicationName = app.Name;
if (base.ValidateUser(username, password))
{
return true;
}
}
ApplicationName = temp;
Roles.ApplicationName = temp;
return false;
}
Sto cercando di convalidare le credenziali immesse contro tutte le applicazioni, mentre GetAllApplicationsMethod () riceve tutte le applicazioni da tavolo aspnet_Applications (ho anche una parte per l'inserimento delle applicazioni nella stessa tabella).
Se la convalida riesce quindi il nome dell'applicazione è leaved su entrambi i provider di appartenenze e ruoli, altrimenti rimane da un default che è l'applicazione predefinita per gli utenti anonimi.
Soluzione
Sì, ho fatto somethihng simili in diverse occasioni. L'unica differenza è che io guardo il nome dell'applicazione in una tabella di database basato sul URL l'utente entra in off di validare e solo per quella applicazione. Il tavolo ha due campi, URL e ApplicationName. L'ApplicationName è lo stesso ApplicationName come il campo aspnet_Applications.ApplicationName.