Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass data from ASP.NET WebForms to Aurelia Global Scope

I am bootstrapping Aurelia from a Web-forms based legacy application. My authentication related information is maintained in the web-forms application in the Custom Base Page class.

How do I pass & maintain this authentication information to Aurelia's global scope? So that I can use it while building the menus using routes to show/hide certain menu items based on the user/role?

like image 305
Ajay Jadhav Avatar asked Apr 13 '16 14:04

Ajay Jadhav


1 Answers

You could put logic your custom base page to add a <script> tag to the head of the document that makes all the information available to javascript applications:

<head>
  ...
  <script>
    window.appInfo = {
      user: 'foo',
      bar: 'baz'
    };
  </script>
</head>
<body aurelia-app="main">
  ...

Then in your aurelia app you can access this info as needed:

export class App {
  constructor() {
    let info = window.appInfo;
    // do something with the app info...
  }
  ...
}

You could even register the object in the container, enabling you to declare it as a dependency. This will make your code more portable and testable.

In main.js: aurelia.container.registerInstance('app-info', window.appInfo);

@inject('app-info')
export class App {
  constructor(info) {
    // do something with the app info...         
  }
  ...
}
like image 87
Jeremy Danyow Avatar answered Nov 03 '22 10:11

Jeremy Danyow