// *********************************************************************** // 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(null, requestUri); return true; } catch (Exception ex) { return false; } } } }