Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想用Javascript调用.NETWebService,如何限制访问?_Javascript_Web Services_Authentication - Fatal编程技术网

我想用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
。一个站点,三个不同的模块。查看此链接