2012-07-07 97 views
9

問題 我希望能夠在Node.js中使用Windows身份驗證。通過Web請求進行Windows身份驗證C++/Node.js

據我所知,IIS在ASP.NET中處理Windows身份驗證,但我無法弄清楚的是,我如何從node.js獲取當前客戶端Windows用戶名。我知道它不是通過IIS運行的(並且不想真正走下IISNode路線)。

必須通過Node.js獲取客戶端的Windows用戶名 - 即使我必須編寫C++庫/服務。

最初的想法是,我可以在ASP.NET中設置一個Web服務,它將使用Windows身份驗證,並允許我使用Web請求來獲取該用戶 - 但這可能太天真了!

我不想問用戶的用戶名和密碼 - 因爲這沒有意義。

任何想法,想法或我可以看的地方? 或者這是不可能的?

注意:這是在一個封閉的Intranet內部進行的,在我們的ASP.NET應用程序和Active Directory中使用Windows身份驗證。

+1

我認爲您正在尋找的是http://en.wikipedia.org/wiki/Integrated_Windows_Authentication和NTLM身份驗證。 – 2012-10-31 05:42:18

回答

1

方法

除非我錯過了一些要求,你應該能夠設置一個IIS網站中繼請求您的Node.js應用程序,以便

  • 客戶端瀏覽器會根據您的IIS網站進行身份驗證;
  • IIS站點會將已認證的請求轉發給Node.js應用程序並返回給客戶端。

請確保禁用匿名訪問,並僅對IIS站點使用IWA。

請參閱Relaying a request in ASP.NET瞭解如何使用C#或VB在ASP.NET中轉發請求的幾個示例。你也需要用頭或GET/POST參數傳遞用戶名:

Response.AppendHeader("CustomUserNameHeader", Page.User.Identity.Name); 

假設

  • Node.js的應用程序需要知道登錄的用戶名在客戶端計算機上。
  • 可以使Node.js應用程序只能從IIS站點訪問,否則解決方案是完全不安全的。
+0

聽起來不錯,我會看看這個,並給它一個去。 – mrdnk 2012-11-16 19:25:33

相關問題