登录的angularjs技术然后重定向到仪表板页面

时间:2014-11-01 09:29:27

标签: angularjs asp.net-web-api single-page-application

我正在使用ASP.NET Web API后端执行我的第一个AngularJS项目。我要做的是,每当用户访问www.mydomain.com时,都会显示登录页面(index.html)。成功登录后,他将被重定向到dashboard.html(这是shell页面,部分视图在这里)。我的项目结构如下所示 -

enter image description here

我对某些问题感到困惑:

  1. 这是我在上面尝试做的最好/最常见的做法吗?
  2. 由于dashboard.html是主页,我应该app.js放置dashboard.html吗?
  3. 如果我将app.js放在dashboard.html上,index.html(登录页面)会有另一个app.js (i.e. loginApp.js)吗?
  4. 我应该如何管理登录状态,即角度部分的IsUserLoggedId,UserId等?
  5. 这个问题可能很愚蠢。我用Google搜索,但没有找到解决此类问题的任何示例/文章。 你能帮忙吗?

    提前谢谢。

2 个答案:

答案 0 :(得分:0)

我不确定ASP.NET如何处理它,但据我所知,ASP.NET只是一个服务器端框架,而AngularJS是客户端框架。 这两个框架解决了不同的问题,但有一些重叠的特点。 如果您开始使用angularjs,那么大多数时候您将处理“单页应用程序(SPA)”一词。

登录后如何处理URL重定向有不同的方法。我将向您展示两个例子。还有更多如何处理用户身份验证和会话。

第一种方法: 在SPA中,大多数时候浏览器将直接在页面本身中更改URL路由和状态,而不会从服务器发出整个页面请求。 话虽如此,您的dashboard.html很可能会出现一个静态模板文件,该文件将直接从浏览器加载。 (即服务器不动态解析dashboard.html但仅用作静态文件)。用户登录后,angularjs将向ASP.NET身份验证端点发出异步HTTP请求。成功登录可以将令牌返回给浏览器,客户端将使用它来管理用户会话。同时,Angular必须将路线更改为/dashboard/。请注意,整个流程对用户来说是透明的,它不会触发整页HTTP请求。

第二种方法: 或者,如果您选择从服务器重定向,则必须发送HTTP重定向302.并且由于HTTP重定向最终将调用向/dashboard/发出完整的HTTP请求,然后它将必须重新加载并引导再次从浏览器角度app.js。在这种情况下,用户必须等待登录时服务器处理仪表板页面

的问题:

  1. 这是我在上面尝试做的最佳/常用做法吗? 有很多方法,我认为最好找到适合你的方法。如果您有RESTful API,那么您可能希望更详细地了解SPA方法。
  2. 由于dashboard.html是主页面,我应该将app.js放在dashboard.html上吗?在SPA中,您不需要加载app.js两次。但如果您使用第二种方法,则必须重新加载app.js
  3. 如果我将app.js放在dashboard.html上,index.html(登录页面)会有另一个app.js(即loginApp.js)吗? 取决于您的方法,如上所述
  4. 我应该如何管理登录状态,即角度部分的IsUserLoggedId,UserId等? Authentication StrategyUNIX style authorization
  5. 还有更多官方指南可以帮助AngularJS Developer Guide

    希望这有助于您与ASP.NET身份验证机制集成。

答案 1 :(得分:0)

你应该有多个shell页面。这个link可以帮助你...
请参阅Multiple Shell Pages部分。