簡體   English   中英

我想使用Javascript調用.NET WebService,如何限制訪問?

[英]I want to use Javascript to call .NET WebService, How to limit the access?

我有一個.net網絡服務,例如http://tempurl.org/webservice.asmx我想使用Javascript(也許是一些jquery lib)來調用它。 問題1:如何將訪問權限限制為僅限我自己? Q2:或如何實現基於角色的身份驗證。

編輯:我想像這樣獨立部署Web服務:

ProjectA
ProjectB
ProjectWebService

我需要人員登錄ProjectA和ProjectB並可以使用ProjectWebService。

這只是一個建議,正如您所知,有很多方法可以給貓皮毛,所以這里有一個。 首先,使用啟用跨服務調用的會話狀態

 [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");

 }

為了對抗網絡竊聽,最好轉到Https,祝您好運:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM