using DeviceRepair.Models;
using DeviceRepair.Models.Enum;
using NLog;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using DeviceRepair.Models.Common;
using Newtonsoft.Json;
namespace TsSFCDeviceSvc
{
///
/// MainService 的摘要说明
///
[WebService(Namespace = "http://www.TechScan.cn/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
// [System.Web.Script.Services.ScriptService]
public class MainService : WebService
{
public App_Code.SFCAuthorize auth;
private static readonly Logger log = LogManager.GetCurrentClassLogger();
public MainService()
{
}
///
/// 获取数据
///
///
///
///
///
public APIResponseData GetDatas(SysModelType module, string inParams, out byte[] btResults)
{
HttpAuthtication();
btResults = new byte[] { };
Dictionary Parameters = GetParameters(inParams);
DataSet dsResults = new DataSet("DataResults");
try
{
switch (module)
{
default:
break;
}
return new APIResponseData() { Code = 0, Message = "数据获取成功!" };
}
catch (Exception ex)
{
log.Error(ex.Message);
return new APIResponseData() { Code = -1, Message = ex.Message };
}
finally
{
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
[WebMethod]
[SoapHeader("auth")]
public string HelloWorld()
{
return "Hello World";
}
private void HttpAuthtication()
{
#region 校验
if (auth == null || !auth.ValidUser(auth.Username, auth.Password))
{
HttpException soapEx = new HttpException(403, "服务不允许访问此页面,也不允许匿名访问。");
log.Warn(string.Format("客户端[{0}]我们试图执行远程匿名访问Func[{1}]!这是被禁止的!", HttpContext.Current.Request.UserHostAddress, "GetDatas"), soapEx);
throw soapEx;
}
#endregion 校验
}
private Dictionary GetParameters(string inParameter)
{
return JsonConvert.DeserializeObject>(inParameter);
}
}
}