NuGet 1.5! 企業"私服"不是夢

先前曾介紹過自行架設NuGet Server的方法,而我一直覺得讓NuGet Server在企業內部作為開發團隊的程式庫/元件集散中心是很棒的點子,只要幾個點選動作就可將程式庫融合到現有專案中,極為方便,尤其自動版本更新的功能,更可解決程式庫開發人員在改過Bug或推出新版時,連該通知誰都不知道的困擾。

不過,架設自己的NuGet Server雖然簡單,我卻發現它在企業內部應用上的大罩門--NuGet在連線NuGet Server時不支援網站登入身分認證! 換句話說,NuGet Server必須開放匿名存取才能運作。擺放開發團隊程式庫的倉庫規定大門不能鎖,任何阿貓阿狗都可以晃進去拿個元件出把玩? 這顯然不符合企業應用的規範,因此依當時文章的結論,若要做到存取設限,還是應回歸網路分享資料夾的做法,但我深信支援網站登入並非技術障礙,只是時間早晚問題... 經過三個多月的時間,NuGet由1.3版推進到1.5版,開始支援網站認證囉!

有圖有真相。重新用1.5版的NuGet.Server程式包做一個NuGet Server網站放在另一主機IIS上,並取消匿名存取,接著在Visual Studio中新增一筆NuGet程式包來源設定指向該URL:

接下來,在專案叫出NuGet管理介面。(註: NuGet從1.4版起,將選單中"Add Library Package Reference…"更名為"Manage NuGet Packages…”,你甚至可在CodePlex上找到關於此一修改的討論 :P,這就是Open Source Project有趣的運作模式!)

從NuGet的管理介面,選取剛才新增的"企業內部NuGet Server"作為來源,因IIS設定不允許匿名存取,於是,輸入帳號/密碼的網站登入對話框出現囉!!

從此,我們便可以透過AD及IIS/Windows權限設定管控只有特定開發人員才能存取,使用NuGet Server儲放開發團隊共用程式庫元件的構想,又更具體可行了。

歡迎推文分享:
Published 03 September 2011 09:27 AM 由 Jeffrey
Filed under:
Views: 12,656



意見

# FrankWu said on 05 September, 2011 08:34 AM

請問一下

你這邊把IIS的匿名存取關掉

還需要開啟其他的驗證機制嗎?

比方說Windows驗證

因為我的是IIS7

把匿名存取關掉,就所有驗證都沒有了

而且是會跳出視窗

可是那視窗我用那台電腦的本機帳號卻怎麼也登不進去

# Jeffrey said on 05 September, 2011 05:36 PM

to FrankWu, IIS7預設是不安裝Windows驗證的,請使用 控制台 / 開啟或關閉Windows設定,找到 Internet Information Services / World Wide Web服務 / 安全性,勾選"Windows驗證"後,才能使用AD帳號登入IIS。參考圖例: leoou.blogspot.com/.../iis-75.html

# Demo said on 23 November, 2011 09:36 PM

確認SERVER端權限(預防IIS Windows認證錯誤returns 404)

控制台=>系統管理工具=>IIS=>網站=>預設的網站下=>Web專案=>右鍵內容=>執行權限=>設定=>萬用字元應用程式對應=>插入=>瀏覽=>加入

"c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll"

參考網址blogs.thesitedoctor.co.uk/.../Nuget+Server+On+IIS6+Returns+404+When+Downloading+Package+After+Upgrade.aspx

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<September 2011>
SunMonTueWedThuFriSat
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication