// ***********************************************************************
// Assembly : OpenAuth.App
// Author : yubaolee
// Created : 07-08-2016
//
// Last Modified By : yubaolee
// Last Modified On : 07-08-2016
// Contact : Microsoft
// File: AuthUtil.cs
// ***********************************************************************
using System;
using System.Configuration;
using System.Web;
using Infrastructure;
using OpenAuth.App.ViewModel;
namespace OpenAuth.App.SSO
{
///
/// 第三方网站登录验证类
/// 登录时:
///
/// var result = AuthUtil.Login(AppKey, username, password);
/// if (result.Success)
/// return Redirect("/home/index?Token=" + result.Token);
///
///
public class AuthUtil
{
static HttpHelper _helper = new HttpHelper(ConfigurationManager.AppSettings["SSOPassport"]);
private static string GetToken()
{
string token = HttpContext.Current.Request.QueryString["Token"];
if (!String.IsNullOrEmpty(token)) return token;
var cookie = HttpContext.Current.Request.Cookies["Token"];
return cookie == null ? String.Empty : cookie.Value;
}
public static bool CheckLogin(string token, string remark = "")
{
if (String.IsNullOrEmpty(token) || String.IsNullOrEmpty(GetToken()))
return false;
var requestUri = String.Format("/SSO/Check/GetStatus?token={0}&requestid={1}", token, remark);
try
{
var value = _helper.Get(null, requestUri);
return Boolean.Parse(value);
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 检查用户登录状态
/// 通过URL中的Token参数或Cookie中的Token
///
/// 备注信息
public static bool CheckLogin(string remark="")
{
return CheckLogin(GetToken(), remark);
}
///
/// 获取当前登录的用户信息
/// 通过URL中的Token参数或Cookie中的Token
///
/// The remark.
/// LoginUserVM.
public static UserWithAccessedCtrls GetCurrentUser(string remark = "")
{
var requestUri = String.Format("/SSO/Check/GetUser?token={0}&requestid={1}", GetToken(), remark);
try
{
var value = _helper.Get(null, requestUri);
return value;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 获取当前登录的用户名
/// 通过URL中的Token参数或Cookie中的Token
///
/// The remark.
/// System.String.
public static string GetUserName(string remark = "")
{
var requestUri = String.Format("/SSO/Check/GetUserName?token={0}&requestid={1}", GetToken(), remark);
try
{
var value = _helper.Get(null, requestUri);
return value;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 登陆接口
///
/// 应用程序key.
/// 用户名
/// 密码
/// System.String.
public static LoginResult Login(string appKey, string username, string pwd)
{
var requestUri = "/SSO/Check/Login";
try
{
var value = _helper.Post(new
{
AppKey = appKey,
UserName = username,
Password = pwd
}, requestUri);
var result = JsonHelper.Instance.Deserialize(value);
return result;
}
catch (Exception ex)
{
return null;
}
}
///
/// 注销
///
public static bool Logout()
{
var token = GetToken();
if (String.IsNullOrEmpty(token)) return true;
var requestUri = String.Format("/SSO/Login/Logout?token={0}&requestid={1}", token, "");
try
{
var value = _helper.Post(requestUri);
return true;
}
catch (Exception ex)
{
return false;
}
}
}
}