2016-11-30 57 views
2

也許這似乎是和意見的問題,但我真的需要知道,如果我以安全和良好的性能方式做我的工作。從服務器到移動應用程序的getdata的最佳途徑

我開發了很多移動應用程序(基於xamarin),他們從dbf文件從本地服務器(windows服務器)獲取數據。

我所做的是開發一些asp.net web服務(asmx)從dbf文件獲取數據並通過json(我喜歡c#,這就是爲什麼asp.net)將它發送給我的應用程序。

然後我們得到一個靜態地址給我們的客戶,安裝IIS,部署Web服務和應用程序到它。我們將端口80從路由器重定向到服務器,所有工作。

我對json使用了一些基本的加密,並且應用程序有用戶名和密碼。

正如我在開始時所說的,我的問題是如果這是一個正確的方法,或者它可以以不同的和更安全的方式完成(和性能,但我最擔心的是安全性),我沒有有很多服務器的經驗。

+1

您是否試圖以相反的方式獲取數據? 1,在服務器上你有ASP.NET WebAPI(類似於你的asp.net webservices) 2,使用Xamarin WebClient的移動設備通過你的WebAPI上的https url查詢,並且它返回JSON數據。 因此,您的移動應用程序開始獲取數據,並且您可以使用HTTPS協議。 – Majkl

+0

嗯...我會看看 – Mulflar

回答

1

可以使用ASP.NET的WebAPI和Web客戶端與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); 

在服務器側(ASP.NET的WebAPI):

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; 
    } 
} 
+0

因爲我沒有得到任何其他答案,我會認爲你的消化是唯一的選擇,以獲得更好的安全性 – Mulflar