Databaseless ASP.NET MVC 5 su un'API REST esterna

1

Dove immaginereste un'applicazione web ASP.NET MVC 5 su un database MSSQL, sono stato collocato in una situazione in cui dovrei usare endpoint di token esterni personalizzati e utilizzare il portatore token per effettuare chiamate API autenticate.

Sto, di fatto, tentando di creare un'applicazione web (n as) databaseless (come possibile) ASP.NET MVC 5.

Queste fasi sono, forse non per il libro, ma riuscite:

  • middleware OWIN personalizzato che utilizza questi token e gli endpoint auth
  • un'identità in memoria che viene costruita, in base a ciò che torno dall'endpoint dell'utente e che contiene, tra le altre cose, il token bearer e i ruoli come attestazioni esterne, che vengono tutti portati in primo piano come vera identità Claims .
  • La possibilità di effettuare chiamate API autenticate a questa API REST esterna e dati GET / POST utilizzando detto token bearer (utilizzando RestSharp).

Ora mi trovo in un incrocio:

  • Dovrò capire come implementare i ruoli di identità e far sì che funzioni per consentire / proteggere alcuni contenuti e funzionalità in base ai ruoli che ottengo dalla risposta dell'endpoint. Questi sono praticamente gerarchici (admin, keyuser, user).
  • Come farò a procedere poiché non ho uno strato O / RM? Immagino che continuerei semplicemente a creare i miei modelli di dominio e i modelli di visualizzazione, se necessario?
  • Sto cercando di capire come fare tutto questo come "dbless" il più possibile, evitando possibilmente di eliminare le famigerate tabelle normalmente generate da ASP.NET per il suo lavoro sporco di Identity. O inevitabilmente mi imbatterò nella necessità di mantenere almeno alcuni dati da solo?
  • Se necessario, potrei essere in grado di convincere il backend a concedere il mio desiderio e memorizzare (POST) il mio% co_de arbitrario (ad esempio, l'utente aggiunge il suo numero di telefono).
  • Ho lavorato sulle mie classi Claims , ApplicationUser , UserStore , RoleStore ecc. È questa la strada da percorrere? Avrò anche bisogno di loro in questo caso?

A questo punto sono abbastanza perso su come dovrei procedere. Qualcuno ha esperienza di "shelling" di un'app MVC 5 su un'API RESTful esterna senza UserManager e quali sono le insidie di cui dovrei essere consapevole?

Come puoi immaginare, sto avendo una crisi di fede qui. Sto "superando" un sacco di incognite e sono contento di essere arrivato così lontano, ma mi chiedo se tutto ciò possa essere fatto completamente, visto che sto imparando anche Identity "on the go". Non è un grande scenario, ma deve essere fatto entro un periodo di tempo limitato.

Le informazioni su ciò che sto tentando di tentare sono inesistenti ...

Qualsiasi intuizione sarebbe quindi incredibilmente apprezzata.

    
posta Wim Ombelets 16.10.2015 - 21:42
fonte

1 risposta

2

Il fatto che l'archivio dati si trovi dietro un'API RESTful è irrilevante se hai un'architettura a cui non importa in che modo i dati vengono mantenuti. Deve solo conoscere un'interfaccia che promette questa persistenza. Il modello di deposito eccelle nel creare questa astrazione.

Tenere presente che se si mantengono piccole le proprie interfacce, sarebbe facile persino avere più meccanismi di persistenza differenti se in seguito si determina che è necessario conservare alcune informazioni in un db "locale". Alcuni repository potrebbero essere implementati chiamando il servizio web. Altri potrebbero essere implementati raggiungendo un database o anche un file XML. Di nuovo, il punto è che il tuo controller non dovrebbe preoccuparsi di in che modo i dati sono effettivamente persi. Chiama semplicemente in IFooRepository per ottenere ciò di cui ha bisogno.

    
risposta data 17.10.2015 - 01:20
fonte

Leggi altre domande sui tag