Come incorporare l'autenticazione di Windows con il progetto ASP.NET Core & AureliaJS

6

Stiamo creando un progetto usando Aurelia / Typescript. Per coloro che non sanno cosa sia, è fondamentalmente un AngularJS migliore (supponente). Il nostro progetto funziona perfettamente, tranne per il fatto che ora dobbiamo incorporare l'autenticazione di Windows, che possiamo ottenere tramite ASP.NET Core. Questo è un po 'un problema. Considerando che stiamo usando Typescript, che viene compilato per noi in javascript, come possiamo accedere al nostro utente auth di Windows da Aurelia / lato client?

Dato che stiamo chiamando API dal lato client usando Aurelia e per certe API, dobbiamo essere in grado di passare l'autenticazione dell'utente. L'unica soluzione che ho trovato è passare l'utente attraverso l'URL come parametro e provare ad accedervi da Aurelia. Non sembra una buona idea, ma abbiamo faticato a trovare un'altra soluzione. Qualche idea?

    
posta James 12.08.2016 - 23:27
fonte

1 risposta

-1

Siamo nella situazione simile, usando ASP.NET Core per il lato server e Aurelia per il client. Probabilmente non utilizzeremo l'autenticazione di Windows, ma stavo pensando, come potrei farlo.

Sul lato server abbiamo un controller MVC singolo e View (Index.cshtml) per ospitare Aurelia SPA. Quindi l'idea era di autenticare l'utente sul server e rendere le informazioni dell'utente in Index.cshtml come variabile JavaScript globale. Questo dovrebbe essere facilmente accessibile dal tuo codice TypeScript.

Index.cshtml: (ASP.NET MVC)

<script type="text/javascript"> 
  // Create global variable to store user info.
  var UserInfo = { Login: '@(Model.Login)', Email: '@(Model.Email)'  };
</script>

Home.ts : (Aurelia)

declare var UserInfo: any; // Tell TS the variable is already defined elsewhere.

export class Home {
  name: string;
  email: string;

  constructor ()
  {
    this.name = UserInfo.Login;
    this.email = UserInfo.Email;
  }

}

Un'altra idea (non l'ho ancora provata) sarebbe quella di passare le informazioni dell'utente nei cookie o nella memoria di sessione.

Questo non è raccomandato se devi passare informazioni sensibili!

    
risposta data 06.12.2016 - 21:11
fonte

Leggi altre domande sui tag