2017-03-24 15:35:52 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Web;
|
|
|
|
|
using System.Web.Mvc;
|
|
|
|
|
using Infrastructure.Cache;
|
2017-11-29 20:49:14 +08:00
|
|
|
|
using OpenAuth.Repository.Domain;
|
2017-03-24 15:35:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace OpenAuth.App.SSO
|
|
|
|
|
{
|
|
|
|
|
public class SSOAuthUtil
|
|
|
|
|
{
|
|
|
|
|
public static LoginResult Parse(PassportLoginRequest model)
|
|
|
|
|
{
|
|
|
|
|
var result = new LoginResult();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
model.Trim();
|
|
|
|
|
//<2F><>ȡӦ<C8A1><D3A6><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
var appInfo = new AppInfoService().Get(model.AppKey);
|
|
|
|
|
if (appInfo == null)
|
|
|
|
|
{
|
|
|
|
|
throw new Exception("Ӧ<>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ȡ<EFBFBD>û<EFBFBD><C3BB><EFBFBD>Ϣ
|
|
|
|
|
User userInfo = null;
|
|
|
|
|
if (model.UserName == "System")
|
|
|
|
|
{
|
|
|
|
|
userInfo = new User
|
|
|
|
|
{
|
2017-10-11 16:19:34 +08:00
|
|
|
|
Id = string.Empty,
|
2017-03-24 15:35:52 +08:00
|
|
|
|
Account = "System",
|
|
|
|
|
Name ="<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա",
|
|
|
|
|
Password = "123456"
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var usermanager = (UserManagerApp)DependencyResolver.Current.GetService(typeof(UserManagerApp));
|
|
|
|
|
userInfo = usermanager.Get(model.UserName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (userInfo == null)
|
|
|
|
|
{
|
|
|
|
|
throw new Exception("<22>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
}
|
|
|
|
|
if (userInfo.Password != model.Password)
|
|
|
|
|
{
|
|
|
|
|
throw new Exception("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var currentSession = new UserAuthSession
|
|
|
|
|
{
|
|
|
|
|
UserName = model.UserName,
|
|
|
|
|
Token = Guid.NewGuid().ToString().GetHashCode().ToString("x"),
|
|
|
|
|
AppKey = model.AppKey,
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
IpAddress = HttpContext.Current.Request.UserHostAddress
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Session
|
|
|
|
|
new ObjCacheProvider<UserAuthSession>().Create(currentSession.Token, currentSession, DateTime.Now.AddDays(10));
|
|
|
|
|
|
2017-11-28 23:54:49 +08:00
|
|
|
|
result.Code = 200;
|
2017-03-24 15:35:52 +08:00
|
|
|
|
result.ReturnUrl = appInfo.ReturnUrl;
|
|
|
|
|
result.Token = currentSession.Token;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
2017-11-28 23:54:49 +08:00
|
|
|
|
result.Code = 500;
|
|
|
|
|
result.Message = ex.Message;
|
2017-03-24 15:35:52 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
}
|
2016-07-12 12:28:54 +08:00
|
|
|
|
}
|