[英]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.