2009-12-02 117 views
0

我遇到以下問題: 我想要使用asp.net頁面保護IIS下託管的某些文件的訪問權限。如何處理ASP.NET身份驗證

var request = WebRequest.Create("www.smth.com/protectData.aspx") 
       as HttpWebRequest; 
request.Credentials = new NetworkCredentials("john doe", "john"); 
request.PreAuthenticate = true; 
var response = request.GetResponse(); 

如何讀取稱爲頁面(protectData.aspx)上發送的憑據: 該頁面將使用其他應用程序叫什麼名字?

我有代碼以驗證憑據...我試過實現自定義成員資格,但HttpContext.Current.User爲空。 ASPX頁面是哪個主機與 自定義的策略驗證的WCF服務的Web應用程序託管:

system.serviceModel>
serviceAuthorization principalPermissionMode = 「自定義」
authorizationPolicies
添加的PolicyType =「CustomPolicy .CustomPolicy,CustomPolicy「/>
授權政策
system.serviceModel

對於aspx頁面,我現在沒有任何安全措施,基本上我只想從請求中獲取憑據並使用現有代碼驗證它們。

任何幫助表示讚賞, 阿德里安

+0

可以提供IIS設置的詳細信息,特別是用於身份驗證嗎? – Irfy 2009-12-02 15:57:55

+0

更新了問題 – 2009-12-02 16:10:08

回答

1

你基本上有兩種選擇。您可以使用HTTP傳輸身份驗證或基於窗體的身份驗證。

對於傳輸身份驗證,您將不得不設置IIS以保護客戶端嘗試訪問的資源。該資源可以是您的文件或ASPX頁面。 ASPX頁面將能夠讀取HttpContext.Current.User變量,並能夠決定該用戶是否可以訪問該資源。

對於基於表單的身份驗證,IIS不需要驗證請求。相反,您將表單發佈到Web表單,然後可以查看請求中的用戶名/密碼並決定是否允許訪問。

Forms Based Auth(FBA)的一個變體是在POST主體中發佈用戶名/密碼,然後ASPX頁面可以讀取,解碼並決定是否允許訪問。

+0

您可以舉例說明如何使用HttpWebRequest完成Form Based Auth? – 2009-12-02 18:54:49

+0

想通了,謝謝 – 2009-12-02 20:36:06