Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
如何使一个web应用程序访问我自己的web服务(asp.net)?_Asp.net - Fatal编程技术网

如何使一个web应用程序访问我自己的web服务(asp.net)?

如何使一个web应用程序访问我自己的web服务(asp.net)?,asp.net,Asp.net,我有web服务asp.Net,我只希望有一个特定的web应用程序使用它,但我不能这样做 谁能告诉我如何解决这个问题。身份验证解决方案 您可以通过在每个方法中使用密码作为参数来保护您的方法,或者在更好的情况下,使用传统表单身份验证来授权用户(在本例中为您的应用程序),然后在调用webmethods时检查用户是否已登录 例如,板条箱授权方法如下: [WebMethod(EnableSession = true)] public bool Authorize(login, password) {

我有web服务asp.Net,我只希望有一个特定的web应用程序使用它,但我不能这样做

谁能告诉我如何解决这个问题。

身份验证解决方案 您可以通过在每个方法中使用密码作为参数来保护您的方法,或者在更好的情况下,使用传统表单身份验证来授权用户(在本例中为您的应用程序),然后在调用webmethods时检查用户是否已登录

例如,板条箱授权方法如下:

[WebMethod(EnableSession = true)]
public bool Authorize(login, password)
{
   if(login == "admin" && password == "supersecret")
   {
      FormsAuthentication.SetAuthCookie(login, false);
      return true;
   }

   return false;
}

[WebMethod(EnableSession = true)
public string SomeWebMethod()
{
   if(!User.Identity.IsAuthenticated)
     throw Exception("User unathenticated");

   /* method body */
}
然后,您可以通过在开始使用Web服务时只调用一次
Authorize
方法来使用它,然后使用您喜欢的所有方法,因为身份验证信息存储在提供Web服务的服务器会话中

不要忘记在所有webmethods中将
EnableSession
设置为true

IP比较解决方案 在您的Web服务中放置一个方法

public bool CanExecute()
{
   return Context.Request.UserHostAddress == "290.110.11.12" /* put real ip here */    
}
然后在您的webmethods中使用

[WebMethod(EnableSession = true)
public string SomeWebMethod()
{
   if(!CanExecute())
     throw Exception("User unathenticated");

   /* method body */
}

希望这有帮助:)

如果您知道唯一允许使用您的Web服务的计算机的IP地址,您可以检查它,如果不知道,则返回404或异常。

确切的问题是什么?没有权限?错误?例外情况?提供尽可能多的相关信息,因为目前您的问题太模糊,无法回答。我想他是在问如何防止人们发现和使用他发布的web服务。我需要有人告诉我,如何在不更改web应用程序代码的情况下,仅此web应用程序访问我的web服务,我想知道请求URL如果请求来自此web应用程序好的,web服务,回复此请求其他请求,我需要我的web服务不回复但是,如果我不需要更改web应用程序,如果我使用密码验证web服务,任何人都可以获得此密码,或者此web应用程序的所有者可以将其传递给其他人,因此我搜索任何其他解决方案,以避免在web应用程序中修改任何内容。如果您无法更改您的应用程序,则我的想法不适合您的问题。。。下次请更精确一些。不过,如果有一天你想使用这个解决方案也没关系。。。问候..我使用授权,但你有其他解决方案吗,比如我如何获得请求来自的ip或url我需要问你,你对使用此web应用程序的标志有什么看法现实吗?web应用程序意味着每次都会发生更改您所说的“使用此web应用程序”是什么意思?您能给我返回ip地址的代码以将其放入我的代码中吗?