程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 用WAST來遠程管理ASP.NET的user和role

用WAST來遠程管理ASP.NET的user和role

編輯:關於ASP.NET

相信大家在開發ASP.NET程序的時候都使用過ASP.NET Configuration這個菜單。點擊這個菜單時,Visual Studio將會啟動一個WebServer,進而有一個叫做ASP.NET Web Admin Tool的頁面將會幫助你管理整個ASP.NET程序的user和role。比如新建用戶,刪除用戶,新建角色,分配角色等等。有了這個Tool,我們可以非常方便的在開發時來管理membership和role。然而,當ASP.NET程序Publish到IIS上後,你是用什麼來進行管理的呢?許多人會用開發自己的模塊來進行管理,也有些人也會使用一些開源的模塊來進行管理。然而功能性和穩定性都可能比.NET自帶的管理工具(WAST)要差。我們知道在開發時通過Visual Studio使用WAST,但不知道怎樣能直接使用這個模塊。這篇隨筆將和大家一起探討怎樣把這個強大的功能據為己有 :)

首先介紹一些基本的東東,如果你很熟悉了,那麼請直接跳過吧。

當你安裝.NET Framework時,在"C:\Windows\Microsoft.NET\Framework\v2.0.50727"目錄下會自動創建一個名為ASP.NETWebAdminFiles的文件夾,裡面就包含了一個Website,用來管理membership和role。當你使用VS時,VS會啟動一個新的WebServer,在WebServer中來啟動這個Website。同時請注意,訪問這個Website時需要附加兩個query string - applicationPhysicalPath(application的物理路徑)以及applicationUrl(application在IIS中的目錄),如:

http://localhost/ASP.NETWebAdminFiles/default.aspx?applicationPhysicalPath=C:\inetpub\wwwroot\Job\&applicationUrl=/Job

而且,WAST在默認情況下是不允許進行遠程訪問的。如:http://serverIP/blabla

好了,在介紹了一些關於WAST的注意點後,我們就可以在我們自己的ASP.NET程序中來使用它了。以下主要介紹兩種情形:

1) 在IIS server上進行membership和role管理。

2) 在外網中進行訪問。

第一種情形其實不難,只需要簡單的兩步:

1) 為了使用WAST,我們可以將其publish在default站點的一個application中,application指向WAST的原目錄或copy後的目錄。然後為了只能通過本地訪問,我們將其設置為windows集成驗證(需要disable匿名驗證)。同時請注意,為WAST指定的application pool的identity需要有讀寫application數據庫文件的權限,比如App_Data目錄下的database file。否則便會有access denied的錯誤了。

2) 將我們的ASP.NET程序也publish在default站點的另一個application中,並在某頁面中增加一個訪問WAST的link,link的URL就是我們剛才給出的示例。或者你也可以直接在IE中使用那個link來訪問。

現在我們便可以在本地IIS上使用WAST了。但是你仍然不能通過 http://serverIP/blabla 來進行遠程訪問。以上僅僅是從admin的角度在IIS server上來維護自己的站點。如果你需要從外部來訪問WAST,你需要修改它的源碼,使得我們可以通過 http://serverIP/blabla 來訪問(修改之前請做好備份:))。

第二種情形:

1) 打開WAST的web.config文件,刪除impersonate以及authorization的定義,並將Windows驗證修改為Forms驗證,因為我們需要從外部來訪問了。

2) 打開WAST的App_Code文件夾下WebAdminPage.cs文件,Ctrl+F搜索到if (!application.Context.Request.IsLocal),並將其改為if (false)。

3) 將WAST部署在IIS的一個application中,並設置其為Forms驗證。同時仍然需要注意,為WAST指定的application pool的identity需要有讀寫application數據庫文件的權限,比如App_Data目錄下的database file。否則便會有access denied的錯誤了。

4) 在IIS的另一個application中部署ASP.NET 程序。

5) 現在最主要的問題就是WAST沒有身份驗證,任何匿名用戶都可以通過 http://serverIP/blabla 來訪問。在Forms驗證的程序下,解決這個問題不難,大家可以自己去嘗試。

6) 現在可以去測試下是不是OK了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved