private ResultValidateDTO ValidateToken(string token, string appno = "passport") { if (string.IsNullOrWhiteSpace(token)) { return(null); } var request = new RestRequest("ValidateToken", Method.GET); request.AddParameter("token", token); request.AddParameter("appNo", appno); // execute the request IRestResponse response = passportRestClient.Execute(request); if (!response.IsSuccessful) { throw new Exception("ValidateToken|ErrorMessage:" + response.ErrorMessage + ",ErrorException:" + response.ErrorException); } string content = response.Content; // ResultValidateDTO result = JsonConvert.DeserializeObject <ResultValidateDTO>(content); return(result); }
public void OnActionExecuting(ActionExecutingContext context) { bool isAuthPass = false; ResultValidateDTO result = null; try { //passportRestClient.PreAuthenticate result = ValidateToken(getToken(getAuthCookie(context))); if (result != null) { if (string.Equals(result.ResultNo, "0")) { isAuthPass = true; } else { throw new Exception("OnActionExecuting|result.ResultNo:" + result.ResultNo + "|result.ResultDescription:" + result.ResultDescription); } } } catch (Exception ex) { Console.WriteLine(ex.Message + "" + ex.StackTrace); ex.ToExceptionless().Submit(); //ExceptionlessClient.Default.CreateLog(typeof(OrderService).FullName, ex.ToString(), LogLevel.Error.ToString()).AddTags("Exception").Submit(); } if (!isAuthPass) { string returnUrl = "http://" + context.HttpContext.Request.Host.ToString(); string strLoginUrl = "https://passport.5173.com/?returnUrl=" + HttpUtility.UrlEncode(returnUrl); //登录直接掉转passport ///TODO:g过滤返回请求头内容 context.HttpContext.Response.Redirect(strLoginUrl); } else { context.HttpContext.Session.SetString("userid", result.Ticket.UserID); // context.HttpContext.User.Identity.Name = result.Ticket.UserName; } // do something before the action executes }
private string getToken(string cookie) { if (string.IsNullOrWhiteSpace(cookie)) { return(string.Empty); } var request = new RestRequest("ValidateCookie", Method.GET); request.AddParameter("value", cookie); // // execute the request IRestResponse response = passportRestClient.Execute(request); if (!response.IsSuccessful) { throw new Exception("getToken|ErrorMessage:" + response.ErrorMessage + ",ErrorException:" + response.ErrorException); } string content = response.Content; // raw content as string ResultValidateDTO result = JsonConvert.DeserializeObject <ResultValidateDTO>(content); if (result != null) { if (string.Equals(result.ResultNo, "0")) { if (result.Ticket != null) { return(result.Ticket.Token); } } else { throw new Exception("getToken|result.ResultNo:" + result.ResultNo + "|result.ResultDescription:" + result.ResultDescription); } } return(string.Empty); }