2011-10-19 79 views
0

我創建了網站庫。我使用從客戶端向服務器的Web服務這樣的Ajax請求:單用戶網站的ASP.NET驗證

var executeService = function(params, url, callbackSuccess, callbackError, isCache) { 
    $.ajax({ 
      type: "POST", 
      url: url, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      data: params, 
      success: callbackSuccess, 
      error: callbackError, 
      cache: isCache 
     }); 
}; 

這:

[WebMethod] 
public string GetImagesByCategory() 
{ 
    var imageList = new List<JSONGallery>(); 
    //... 
    return imageList.ToJSON(); 
} 

我想開發管理頁面。在這個頁面上,我想管理網站的內容。只有一個用戶可以訪問此頁面和管理Web服務的方法(添加,刪除等)。哪種類型的認證對我來說是首選?

我會使用Forms身份驗證,但是如何控制對Web服務的訪問?

謝謝。

回答

1

如果您僅限訪問經過身份驗證的用戶(並且服務顯然位於同一站點上),則您可以僅使用表單身份驗證。您可以在web.config設置這樣的:只有

<authentication mode="Forms"> 
    <forms loginUrl="~/login.aspx" protection="All" timeout="2880" /> 
</authentication> 
<authorization> 
    <deny users="?" /> 
</authorization> 

這樣誰已登錄將要運行該服務權限的用戶。

如果您有其他要訪問的頁面/目錄,則可以添加授權規則以允許對這些元素進行開放訪問,例如CSS文件或圖像。

<location path="assets"> 
    <system.web> 
    <authorization> 
     <allow users="*" /> 
    </authorization> 
    </system.web> 
</location> 
+0

謝謝,它似乎是正確的方式。但我還沒有測試過對web服務的訪問權限。 – Lynx

+0

它的工作原理,謝謝。 – Lynx

0

您可以對管理網頁使用表單身份驗證,對Web服務使用基本身份驗證,則可以通過IIS啓用Web服務的基本身份驗證。