using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using System.Web;
namespace BatchService.Framework.Utility
{
public class OpenAuthHelper
{
public class JsonData
{
public string Data { get; set; }
public string DateTime { get; set; }
public string Token { get; set; }
}
public class UserData
{
public string UserNo { get; set; }
public string UserPassword { get; set; }
public string UserCompany { get; set; }
}
///
/// 向通用权限管理模块提交用户请求
///
/// 通用权限管理模块网址
/// 应用英文名
/// 提交参数
/// 1001:非法参数,1004:不存在的应用名,1005:非法的用户参数,1002:该用户不存在,1003:密码错误
public string PostLogin(string url, string appName, UserData postUserInfo)
{
string userInfoString = JsonHelper.JsonSerializer(postUserInfo);
string jsonData = this.GetParameterData(userInfoString);
var outgoingQueryString = HttpUtility.ParseQueryString(String.Empty);
outgoingQueryString.Add("appName", appName);
outgoingQueryString.Add("jsonData", jsonData);
string postdata = outgoingQueryString.ToString();
return HttpHelper.PostHttp(url, postdata);
}
public string GetParameterData(string jsonData)
{
string token = "";
JsonData entity = new JsonData()
{
Data = jsonData,
DateTime = DateTime.Today.ToString("yyyy-MM-dd"),
Token = "",
};
token = JsonConvert.SerializeObject(entity);
entity.Token = MD5Helper.MD5Encrypt(token);
return JsonConvert.SerializeObject(entity);
}
public bool IsValid(string jsonData)
{
string ret = "";
var entity = JsonConvert.DeserializeObject(jsonData);
if (entity == null)
{
return false;
}
var tempToken = entity.Token;
entity.Token = "";
var md5 = MD5Helper.MD5Encrypt(JsonConvert.SerializeObject(entity));
LogHelper.Debug(string.Format("Local MD5:{0},Remote MD5:{1}", md5, tempToken));
return md5 == tempToken;
}
public string GetDataFromJson(string jsonData)
{
if (jsonData.Trim() == "")
{
return "";
}
return JsonConvert.DeserializeObject(jsonData).Data;
}
}
}