private OAuth2Provider GetProvider(string type, bool referer = false) { type = type.ToLower(); Uri uri = Request.Url; string redirect = string.Concat(uri.Scheme, "://", uri.DnsSafeHost, uri.Port != 80 ? string.Concat(":", uri.Port.ToString()) : string.Empty, GetUrl(string.Concat("/oauth2/cb/", type))); if (referer) { string target = Request.QueryString["target"]; if (string.IsNullOrEmpty(target)) { if (Request.UrlReferrer != null) { target = Request.UrlReferrer.ToString(); } } if (!string.IsNullOrEmpty(target)) { redirect = string.Concat(redirect, "?target=", HttpUtility.UrlEncode(target)); } } M.OAuth2 provider = M.OAuth2.GetById(DataSource, type); if (provider != null) { OAuth2ProviderOptions options = new OAuth2ProviderOptions() { ClientId = provider.Key, ClientSecret = provider.Secret, RedirectUri = redirect }; return(OAuth2Provider.Create(options, type)); } return(null); }
public void Mod() { if (CheckAjax()) { if (CheckRight()) { if (IsPost) { M.OAuth2 attr = new M.OAuth2() { Id = Request["Id"], Name = Request["Name"], Secret = Request["Secret"], Key = Request["Key"], Version = "1.0.0.0", Enabled = Types.GetBooleanFromString(Request["Enabled"]) }; SetResult(attr.Update(DataSource), () => { WritePostLog("MOD"); }); } else { NotFound(); } } } }
public void Index() { string target = Request.QueryString["target"]; if (string.IsNullOrEmpty(target)) { if (Request.UrlReferrer != null) { if (!Request.UrlReferrer.Segments[Request.UrlReferrer.Segments.Length - 1].EndsWith("logout.html", StringComparison.InvariantCultureIgnoreCase)) { target = Request.UrlReferrer.ToString(); } } } if (string.IsNullOrEmpty(target)) { target = GetUrl("ucenter"); } if (User != null && User.Identity != null && User.Identity.IsAuthenticated && !User.Identity.IsAdmin) { Redirect(target); } else { if (IsWap) { Match m = MicroMessengerRegex.Match(Request.UserAgent); if (m.Success) { M.OAuth2 oa = M.OAuth2.GetById(DataSource, "weixin"); if (oa != null) { if (oa.Enabled) { Redirect(string.Concat(GetUrl("/oauth2/login/weixin"), "?target=", HttpUtility.UrlEncode(target))); return; } } } } HttpCookie Uname = Request.Cookies["UserName"]; this["UserName"] = Uname != null ? Uname.Values["UName"] : ""; this["Target"] = target; this["Config"] = PassportSection.GetSection(); Render("login.html"); } }
public static OAuth2 GetById(DataSource ds, string id) { if (id == null) { return(null); } id = id.ToLower(); string[] key = GetCacheName(id); OAuth2 result = CacheProvider.Current.Get <OAuth2>(key); if (result == null) { result = ExecuteSingleRow <OAuth2>(ds, P("Id", id)); CacheProvider.Current.Set(key, result); } return(result); }