Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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
C# 从服务器到移动应用程序获取数据的最佳方式_C#_Asp.net_Json_Web Services_Xamarin - Fatal编程技术网

C# 从服务器到移动应用程序获取数据的最佳方式

C# 从服务器到移动应用程序获取数据的最佳方式,c#,asp.net,json,web-services,xamarin,C#,Asp.net,Json,Web Services,Xamarin,也许这看起来像是一个意见问题,但我真正需要知道的是,我是否以一种安全和良好的绩效方式来完成我的工作 我开发了很多移动应用程序(基于xamarin),它们从本地服务器(windows server)的dbf文件中获取数据 我所做的是开发一些asp.net Web服务(asmx),从dbf文件中获取数据,并通过json将其发送到我的应用程序(我喜欢c#,这就是asp.net的原因) 然后我们向客户获取一个静态地址,安装IIS,部署Web服务和应用程序连接。我们将端口80从路由器重定向到服务器,一切正

也许这看起来像是一个意见问题,但我真正需要知道的是,我是否以一种安全和良好的绩效方式来完成我的工作

我开发了很多移动应用程序(基于xamarin),它们从本地服务器(windows server)的dbf文件中获取数据

我所做的是开发一些asp.net Web服务(asmx),从dbf文件中获取数据,并通过json将其发送到我的应用程序(我喜欢c#,这就是asp.net的原因)

然后我们向客户获取一个静态地址,安装IIS,部署Web服务和应用程序连接。我们将端口80从路由器重定向到服务器,一切正常

我对json使用了一些基本的加密,应用程序有用户和密码


正如我在开始时所说,我的问题是,如果这是一个正确的方法,或者可以用另一种更安全的方式(和性能,但我最担心的是安全性),我对服务器没有太多经验。

您可以使用ASP.NET WebApi和WebClient与HTTPS协议

在客户端(移动设备或其他设备):


您是否尝试以相反的方式获取数据?1、在您拥有ASP.NET WebAPI(类似于您的ASP.NET webservices)的服务器上2、使用Xamarin WebClient的移动设备通过您的WebAPI上的https url进行查询,并返回JSON格式的数据。所以你的移动应用程序开始获取数据,你可以使用HTTPS协议。。。我来看看,因为我没有得到任何其他答案,我认为你的建议是获得更好安全性的唯一选择
string result = "";
using (WebClient webClient = new WebClient())
{
    string apiUrl = string.Format(@"https://webapi.yourdomain.com/api/{0}/{1}/", model.UserName, model.UserPass);
    webClient.Headers["Accept"] = "application/json";
    webClient.Encoding = System.Text.Encoding.UTF8;
    result = webClient.DownloadString(new Uri(apiUrl));
}
ResponseMyObj resultObj = JsonConvert.DeserializeObject<ResponseMyObj >(result);
public class MyObjController : BaseController
{
    [HttpGet]
    [ActionName("GetMyObjList")]
    public HttpResponseMessage GetMyObjList(string UserName, string UserPass)
    {//Here you can check the credentials and retrieve data from the database and return them back to the client...
        object result = null;
        HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, result);
        return response;
    }
}