2011-03-07 136 views
0

我剛剛遇到了在VS中使用集成開發服務器(卡西尼)的問題之一,並希望看看是否有任何解決方案。使用ASP.NET認證/授權與卡西尼開發服務器

我們使用asp.net身份驗證來保護網站。但是,Cassini以集成管道模式運行,這意味着所有文件的請求都通過asp.net isapi。這樣做的結果是,它保護的文件不會在生產環境中保護(.htm .js .css等)。

現在我明白我們可以在本地IIS實例上運行該項目,但如果可能的話,我們希望避免這種情況。但是,由於上述問題,這看起來像是唯一的解決方案。

有沒有人有關於如何讓Cassini使用身份驗證的任何想法,可以在準備好時輕鬆移動到生產環境。 (我也想避免有一個不同的開發web.config,專門允許訪問這些文件)。

我們正在使用VS2010。

非常感謝。

回答

0

您可以連接高達您的Global.asax或IHttpModuleHttpApplication.PostAuthenticateRequest事件IIS 7的所有核心功能,以及其他功能。 PostAuthenticateRequest event on MSDN

在事件處理程序中,檢查文件擴展名,找到您想要解密的文件擴展名。如果文件擴展名匹配,則將HttpContext.User設置爲IPrincipal實例,該實例具有訪問指定目錄中文件所需的角色。

+0

謝謝,我已將您的回答標記爲答案,因爲它似乎是一個合理的解決方案。但是,我們決定不使用它,而是採取了一切措施,併爲所有開發人員設置了IIS。 – Martyn 2011-03-09 13:09:14

1

而不是使用卡西尼的,你可以下載並安裝IIS Express

IIS Express是爲開發人員優化IIS的一個輕量級的,自包含的版本。通過IIS Express,可以輕鬆使用最新版本的IIS來開發和測試網站。它旨在簡化網站開發

+0

感謝Oded,如果我們決定離開卡西尼,那麼我們可能會使用完整的IIS,因此Express並不適合。話雖如此,我並不十分了解它。 Express對於完整的IIS進行開發具有哪些優勢?它允許編輯並繼續嗎? – Martyn 2011-03-07 12:01:04

+0

@Martyn - 我不知道編輯和繼續,但懷疑它會是完全相同的IIS。它比IIS更輕量級,主要好處是你不需要像管理員那樣運行VS來讓webservices正常工作。 – Oded 2011-03-07 12:09:49