我想用Javascript调用.NETWebService,如何限制访问?
我有一个像我想用Javascript调用.NETWebService,如何限制访问?,javascript,web-services,authentication,Javascript,Web Services,Authentication,我有一个像http://tempurl.org/webservice.asmx 我想用Javascript,或者一些jquery库来调用它。 问题1:如何限制访问权限仅限于我自己? 问题2:或者如何实现基于角色的身份验证 编辑: 我想独立部署Web服务,如下所示: ProjectA ProjectB ProjectWebService 我需要有人登录ProjectA和ProjectB并可以使用ProjectWebService。只是一个建议,因为你知道有很多方法可以剥猫皮,所以这里有一个。 首
http://tempurl.org/webservice.asmx
我想用Javascript,或者一些jquery库来调用它。
问题1:如何限制访问权限仅限于我自己?
问题2:或者如何实现基于角色的身份验证
编辑:
我想独立部署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,祝您好运:)请回答新问题。我有两个项目在一个解决方案下。用户在Project1中登录并在Project2中使用webservice。
会话
似乎没有进行。您是否托管了两个站点?如何访问项目?你能再解释一下吗……比如:user.site.com
,admin.site.com
,webservice.site.com
。一个站点,三个不同的模块。查看此链接