2014-11-01 51 views
1

我正在做我的第一個使用ASP.NET Web API後端的AngularJS項目。我想要做的是,無論何時用戶訪問www.mydomain.com,都會顯示一個登錄頁面(index.html)。成功登錄後,他將被重定向到dashboard.html(這是shell頁面,部分視圖在這裏)。我的項目結構顯示如下─angularjs技術用於登錄然後重定向到儀表板頁面

enter image description here

我感到困惑的一些問題:

  1. 這是最好的/通用的做法我試圖在上面做什麼?
  2. 因爲dashboard.html是主頁,我應該把app.js放在dashboard.html
  3. 如果我把app.jsdashboard.htmlindex.html(登錄頁面)有另一個app.js (i.e. loginApp.js)
  4. 我該如何管理登錄狀態,即角度部分中的IsUserLoggedId,UserId等?

這個問題可能很愚蠢。我GOOGLE了,但沒有找到任何例子/文章解決這個問題。 你能幫忙嗎?

預先感謝您。

+0

與其關於路由而不是哪個html顯示...請閱讀angularjs路由的基礎知識... – harishr 2014-11-01 09:46:27

+0

我正在尋找同樣的東西。如果您找到答案,請在此張貼.. – 2015-01-06 11:21:56

回答

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重定向最終將撥打的完整的HTTP請求/dashboard/,它會再必須再次從瀏覽器重新加載並引導角app.js。在這種情況下,用戶將不得不等待服務器登錄時

問題被處理的儀表板頁面:

  1. 這是最好的/通用的做法我試圖在上面做什麼? 有很多方法,我認爲最好找到適合你的方法。如果您有一個RESTful API,那麼您可能需要更詳細地瞭解SPA方法。
  2. 由於dashboard.html是主頁面,我應該在dashboard.html上放置app.js嗎? 在SPA中,你不需要加載app.js兩次。但如果您使用第二種方法,則必須重新加載app.js
  3. 如果我把app.js放在dashboard.html中,index.html(登錄頁面)是否有另一個app.js(即loginApp.js)? 取決於你的方法如上所述
  4. 我應該如何管理登錄狀態,即IsUserLoggedId,UserId等角部分? Authentication StrategyUNIX style authorization

有更多的官方指南,可以幫助AngularJS Developer Guide

希望這可以幫助您與ASP.NET身份驗證機制集成。

+0

感謝您的解釋。我得到了這項技術。但是,如果您發佈示例代碼或任何其他內容會更好。 – 2014-11-01 10:33:00

+0

從上面的鏈接可以看出,如果你閱讀了UNIX風格的授權方式,他們提供了一個很好的示例https://github.com/fnakstad/angular-client-side-auth。但請注意,這不再是ASP.NET,你正在使用AngularJS,所以服務器並不重要,因爲它們只是提供了終點。在這種情況下,他們使用Node Express框架。如果您看到客戶端視圖代碼,也不要感到困惑,因爲它們使用Jade預處理器標記來簡化html。 – Yeo 2014-11-01 10:39:53

+0

關於Angularjs Token身份驗證和Wep API後端的詳細介紹,請在這裏查看它可能對您的情況有用http://bitoftech.net/2014/06/09/angularjs-token-authentication-using-asp-淨網頁API-2-owin-ASP淨身份/ – 2014-11-01 13:07:58

0

你應該有多個shell頁面。這link可以幫助你...
是指Multiple Shell Pages部分。

相關問題