How to pass data from ASP.NET WebForms to Aurelia

2019-02-10 11:42发布

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条回答
成全新的幸福
2楼-- · 2019-02-10 12:24

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...         
  }
  ...
}
查看更多
登录 后发表回答