2011-05-06 71 views
0

我有一個.net webservice像http://tempurl.org/webservice.asmx 我想用Javascript調用它,也許一些jQuery的庫。 Q1:如何限制只有我自己的訪問? Q2:或如何實施基於角色的認證。我想用Javascript來調用.NET WebService,如何限制訪問?

編輯: 我想單獨部署Web服務,如:

ProjectA 
ProjectB 
ProjectWebService 

我需要人們在項目A和項目B登錄,並且可以使用ProjectWebService。

回答

1

只是一個建議,因爲你知道很多方法來剝皮貓所以繼承人。使用

[WebMethod(EnableSession = true)] 

首先實現跨越呼叫服務會話狀態。然後有登錄,節省了用戶的細節到會話的Web服務方法,這種支持asp.net的標準成員資格提供警告示例代碼

public bool Login(string userName, string password) 
{ 
     //validate login 
     var user = Membership.GetUser(userName); 
     var valid = Membership.ValidateUser(user.UserName, password)); 
     if (valid) 
      HttpContext.Current.Session["user"] = user; 
     return valid; 
} 

然後你可以在Web服務方法中對用戶進行驗證。

public void SomeServerMethod() 
{ 
    var user = HttpContext.Current.Session["user"]; 

    if (user == null) 
     throw new Exception("Please login first"); 

    if (user.IsInRole("FooRole") 
      DoStuff(); 
    else 
     throw new Exception("Seriously? dude you dont have those rights"); 

} 

爲了應對網絡easedropping最好去HTTPS,好運:)

+0

這對我的作品。 https是下一步。非常感謝! – hbrls 2011-05-06 08:10:51

+0

請新問題。我有1個解決方案下的2個項目。用戶在Project1中登錄並在Project2中使用webservice。 '會議'似乎沒有進行。 – hbrls 2011-05-06 09:08:56

+0

你是否託管兩個網站?項目如何訪問?你能解釋一下更多... – 2011-05-06 09:34:04