Sto provando a creare un'API e un client del sito web per questo. Ultimamente ho letto molto su OAuth2 come meccanismo di sicurezza e aziende che offrono l'autenticazione come un servizio come auth0.com o anche Azure attivo Directory e posso vedere i vantaggi nell'utilizzarli
Perché sono abituato ad avere sempre gli utenti nello stesso database e le tabelle con le relazioni con la tabella Utenti nel formato da Uno a Molti come sotto
public class User
{
public string subjectId { get; set; }
public virtual List<Invoice> Invoices { get; set; }
/*
More properties in here
*/
}
public class Invoice
{
public int InvoiceId { get; set; }
public string PaymentNumber { get; set; }
public DateTime Date { get; set; }
public double Amount { get; set; }
public string Description { get; set; }
public virtual User User { get; set; }
}
Le mie domande sono allora.
Se gli utenti sono memorizzati in un servizio di autenticazione esterno come Auth0.com,
- In che modo la classe Invoice gestirà la relazione con l'utente?
- Sarebbe solo l'aggiunta di una nuova proprietà subjectId nella tabella Invoice e questo prenderà il valore di qualsiasi id a cui è stato assegnato il servizio di autenticazione?
In quest'ultimo caso, la fattura di classe sarebbe qualcosa di simile in basso?
public class Invoice
{
public int InvoiceId { get; set; }
public string PaymentNumber { get; set; }
public DateTime Date { get; set; }
public double Amount { get; set; }
public string Description { get; set; }
public string SubjectId{get;set;}
}
Inoltre, se gli utenti sono memorizzati altrove, come fai una query come
Select * from Users u inner join Invoices i where Users.Name='John Doe' and i.Date>Somedate.