问题
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?
回答1:
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...         
  }
  ...
}
来源:https://stackoverflow.com/questions/36602231/how-to-pass-data-from-asp-net-webforms-to-aurelia-global-scope