using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Forks.JsonRpc.Client;
|
|
using Update.LoginService;
|
|
using Update.WCF_;
|
|
using Utils.Security;
|
|
using WeighBusiness;
|
|
using WeighBusiness.BL;
|
|
using System.Configuration;
|
|
|
|
namespace Update.Utils
|
|
{
|
|
public class LoginUtil
|
|
{
|
|
private static bool IsInitRpc = false;
|
|
private static string urlPath;
|
|
public static void InitRpc()
|
|
{
|
|
var path = ConfigurationManager.AppSettings["UrlPath"];
|
|
if (!IsInitRpc) {
|
|
RpcFacade.Init(path, "CutupClient");
|
|
IsInitRpc = true;
|
|
urlPath = path;
|
|
} else {
|
|
if (urlPath != path) {
|
|
RpcFacade.ReInit(path);
|
|
}
|
|
}
|
|
urlPath = path;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 验证远程登陆。如果没有登陆远程系统,则重新登陆
|
|
/// </summary>
|
|
public static void CheckLogin()//验证远程登陆。如果没有登陆远程系统,则重新登陆
|
|
{
|
|
CheckLogin(UserBL.CurrentUser.ERP_User_Name, () => SecurityUtil.ChangeBack(UserBL.CurrentUser.ERP_User_Password, UserBL.a));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 验证远程登陆。如果没有登陆远程系统,则重新登陆
|
|
/// </summary>
|
|
public static void CheckLogin(string name, Func<string> GetPassword)//验证远程登陆。如果没有登陆远程系统,则重新登陆
|
|
{
|
|
if (string.IsNullOrEmpty(Config.Ticket) || !new LoginClient().KeepLogin(Config.Ticket)) {
|
|
//var login = LoginSystem(name, GetPassword);
|
|
var login = LoginSystem(name, GetPassword);
|
|
if (!login.Success)
|
|
throw new LoginError("登陆系统失败!");
|
|
Config.Ticket = login.Message;
|
|
new LoginClient().KeepLogin(Config.Ticket);
|
|
}
|
|
}
|
|
|
|
public static bool Login(string name, string password, out string error)
|
|
{
|
|
error = string.Empty;
|
|
//if (UserBL.CurrentUser == null) {
|
|
try {
|
|
RpcFacade.Login(name, password);
|
|
} catch (Exception e) {
|
|
error = e.Message;
|
|
return false;
|
|
}
|
|
//}
|
|
return true;
|
|
}
|
|
|
|
public static bool CheckSystemPassword(string name, string secretPassword)
|
|
{
|
|
var originalPassword = SecurityUtil.ChangeBack(secretPassword, UserBL.a);
|
|
var login = new LoginClient().Login(name, originalPassword);
|
|
return login.Success;
|
|
}
|
|
|
|
private static WcfLoginResponseMessage LoginSystem(string name, Func<string> GetPassword)
|
|
{
|
|
var password = GetPassword();
|
|
return new LoginClient().Login(name, password);
|
|
}
|
|
|
|
}
|
|
}
|