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; }
|
}
|
/// <summary>
|
/// 向通用权限管理模块提交用户请求
|
/// </summary>
|
/// <param name="url">通用权限管理模块网址</param>
|
/// <param name="appName">应用英文名</param>
|
/// <param name="postUserInfo">提交参数</param>
|
/// <returns>1001:非法参数,1004:不存在的应用名,1005:非法的用户参数,1002:该用户不存在,1003:密码错误</returns>
|
public string PostLogin(string url, string appName, UserData postUserInfo)
|
{
|
string userInfoString = JsonHelper.JsonSerializer<UserData>(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>(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>(jsonData).Data;
|
}
|
}
|
}
|