/// <summary>
        /// 获取配置文件(Wbm.OAuthV2.config)的oauth子节点
        /// </summary>
        /// <returns></returns>
        public static List <OAuthEntity> GetConfigOAuths()
        {
            string             xpath      = CONFIG_ROOT + CONFIG_OAUTH;
            XmlNode            oauth_node = XmlConfig.SelectSingleNode(xpath);
            List <OAuthEntity> list       = new List <OAuthEntity>();

            if (oauth_node != null)
            {
                foreach (XmlNode item in oauth_node.ChildNodes)
                {
                    if (item.NodeType == XmlNodeType.Element)
                    {
                        OAuthEntity oauth = new OAuthEntity();
                        oauth.name = item.Name;

                        if (item.Attributes["show"] != null)
                        {
                            bool show = bool.TryParse(item.Attributes["show"].Value, out show) ? show : false;
                            if (show == false)
                            {
                                //如果设置不显示则跳过
                                continue;
                            }
                        }
                        if (item.Attributes["desc"] != null)
                        {
                            oauth.desc = item.Attributes["desc"].Value;
                        }
                        list.Add(oauth);
                    }
                }
            }
            return(list);
        }
        /// <summary>
        /// 创建oauthEntity
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        private OAuthEntity CreateOAuthEntity(string userName, string password)
        {
            var access_Token  = tokenCreateStrategy.CreateAccessToken();
            var refresn_Token = tokenCreateStrategy.createRefreshToken();
            var oauthEntity   = new OAuthEntity(access_Token, refresn_Token, 43199, userName, password);

            return(oauthEntity);
        }
Example #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string openId      = Request.Form["openid"].ToString();
        string accessToken = Request.Form["accesstoken"].ToString();
        string oAuthFrom   = Request.Form["oauthfrom"].ToString();
        int    userId      = Int32.Parse(Request.Form["userid"].ToString());

        OAuthEntity oAuth = new OAuthEntity();

        oAuth.OpenID      = openId;
        oAuth.AccessToken = accessToken;
        oAuth.User        = UserAccess.GetUserById(userId);
        oAuth.OAuthFrom   = oAuthFrom;
        oAuth.OAuthBound  = 1;

        string result = "{";

        bool success = false;
        int  bound   = OAuthAccess.CheckOAuthBoundByOpenId(oAuth.OpenID);

        if (bound == 2)
        {
            success = SyncHelper.SyncInsertOAuth(oAuth);
            if (success)
            {
                result += "\"result\":\"1\"";
            }
            else
            {
                result += "\"result\":\"0\"";
            }
        }
        else if (bound == 0)
        {
            oAuth.OAuthBound = 1;
            success          = SyncHelper.SyncUpdateOAuth(oAuth);
            if (success)
            {
                result += "\"result\":\"1\"";
            }
            else
            {
                result += "\"result\":\"0\"";
            }
        }
        else
        {
            result += "\"result\":\"2\"";
        }

        result += "}";

        Response.Write(result);
        Response.End();
    }
 public bool SaveRefreshToken(string refeshToken, OAuthEntity oauthEntity)
 {
     try
     {
         return(redisClient.Set <OAuthEntity>(refeshToken, oauthEntity));
     }
     catch (Exception e)
     {
         return(false);
     }
 }
Example #5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string openId = Request.Form["openid"].ToString();
        string accessToken = Request.Form["accesstoken"].ToString();
        string oAuthFrom = Request.Form["oauthfrom"].ToString();
        int userId = Int32.Parse(Request.Form["userid"].ToString());

        OAuthEntity oAuth = new OAuthEntity();
        oAuth.OpenID = openId;
        oAuth.AccessToken = accessToken;
        oAuth.User = UserAccess.GetUserById(userId);
        oAuth.OAuthFrom = oAuthFrom;
        oAuth.OAuthBound = 1;

        string result = "{";

        bool success = false;
        int bound = OAuthAccess.CheckOAuthBoundByOpenId(oAuth.OpenID);
        if (bound == 2)
        {
            success = SyncHelper.SyncInsertOAuth(oAuth);
            if (success)
            {
                result += "\"result\":\"1\"";
            }
            else
            {
                result += "\"result\":\"0\"";
            }
        }
        else if (bound == 0)
        {
            oAuth.OAuthBound = 1;
            success = SyncHelper.SyncUpdateOAuth(oAuth);
            if (success)
            {
                result += "\"result\":\"1\"";
            }
            else
            {
                result += "\"result\":\"0\"";
            }
        }
        else
        {
            result += "\"result\":\"2\"";
        }

        result += "}";

        Response.Write(result);
        Response.End();
    }
 public bool SaveAccessToken(string accessToken, OAuthEntity oauthEntity)
 {
     try
     {
         //12h
         return(redisClient.Set <OAuthEntity>(accessToken, oauthEntity, TimeSpan.FromHours(12)));
     }
     catch (Exception e)
     {
         return(false);
     }
 }
 public bool SaveUserName_OAuthEntity(string userName, OAuthEntity oauthEntity)
 {
     try
     {
         //12h
         return(redisClient.Set <OAuthEntity>(userName, oauthEntity, TimeSpan.FromHours(12)));
     }
     catch (Exception e)
     {
         return(false);
     }
 }
Example #8
0
    //同步授权登录//
    public static bool SyncInsertOAuth(OAuthEntity oAuth)
    {
        DbCommand comm = GenericDataAccess.CreateCommand();

        comm.CommandText = "SyncInsertOAuth_v4";
        DbParameter param = comm.CreateParameter();

        param.ParameterName = "@UserID";
        param.Value         = oAuth.User.UserID;
        param.DbType        = DbType.Int32;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@OpenID";
        param.Value         = oAuth.OpenID;
        param.DbType        = DbType.String;
        param.Size          = 100;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@AccessToken";
        param.Value         = oAuth.AccessToken;
        param.DbType        = DbType.String;
        param.Size          = 100;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@OAuthFrom";
        param.Value         = oAuth.OAuthFrom;
        param.DbType        = DbType.String;
        param.Size          = 10;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@OAuthBound";
        param.Value         = oAuth.OAuthBound;
        param.DbType        = DbType.Int32;
        comm.Parameters.Add(param);

        int result = -1;

        try
        {
            result = GenericDataAccess.ExecuteNonQuery(comm);
        }
        catch
        {
        }

        return(result != -1);
    }
Example #9
0
    protected void BindData()
    {
        string u = Request.QueryString["u"];

        UserEntity user = new UserEntity();

        user.UserName     = u + Utility.GetRandomNumber(10000, 99999);
        user.UserPassword = "******";
        user.UserNickName = Request.QueryString["name"] ?? "";
        user.UserImage    = Request.QueryString["image"] == "" ? "none.gif" : Request.QueryString["image"];
        user.UserEmail    = "";
        user.UserPhone    = "";
        user.UserTheme    = "main";
        user.UserFrom     = u;
        user.UserCity     = "";

        OAuthEntity oAuth = new OAuthEntity();

        oAuth.OpenID      = Request.QueryString["openId"];
        oAuth.AccessToken = Request.QueryString["accessToken"];
        oAuth.User        = user;
        oAuth.OAuthFrom   = u;
        oAuth.OAuthBound  = 0;

        bool success = OAuthAccess.CheckOAuthLogin(oAuth.OpenID);

        if (!success)
        {
            success = OAuthAccess.InsertOAuth(oAuth);
            if (!success)
            {
                Response.Write("自动登录错误!");
                Response.End();
            }
        }

        DataTable dt     = OAuthAccess.GetOAuthByOpenId(oAuth.OpenID);
        int       userId = Int32.Parse(dt.Rows[0]["UserID"].ToString());

        UserLogin(userId);

        Response.Redirect("/Default.aspx");
    }
Example #10
0
    protected void BindData()
    {
        string u = Request.QueryString["u"];

        UserEntity user = new UserEntity();
        user.UserName = u + Utility.GetRandomNumber(10000, 99999);
        user.UserPassword = "******";
        user.UserNickName = Request.QueryString["name"] ?? "";
        user.UserImage = Request.QueryString["image"] == "" ? "none.gif" : Request.QueryString["image"];
        user.UserEmail = "";
        user.UserPhone = "";
        user.UserTheme = "main";
        user.UserFrom = u;
        user.UserCity = "";

        OAuthEntity oAuth = new OAuthEntity();
        oAuth.OpenID = Request.QueryString["openId"];
        oAuth.AccessToken = Request.QueryString["accessToken"];
        oAuth.User = user;
        oAuth.OAuthFrom = u;
        oAuth.OAuthBound = 0;

        bool success = OAuthAccess.CheckOAuthLogin(oAuth.OpenID);
        if (!success)
        {
            success = OAuthAccess.InsertOAuth(oAuth);
            if (!success)
            {
                Response.Write("自动登录错误!");
                Response.End();
            }
        }

        DataTable dt = OAuthAccess.GetOAuthByOpenId(oAuth.OpenID);
        int userId = Int32.Parse(dt.Rows[0]["UserID"].ToString());

        UserLogin(userId);

        Response.Redirect("/Default.aspx");
    }
Example #11
0
 /// <summary>
 /// Init
 /// </summary>
 /// <param name="e"></param>
 protected override void OnInit(EventArgs e)
 {
     base.OnInit(e);
     #region
     //如果在微信浏览器中才走下面的微信步骤
     if (Request.UserAgent.ToLower().Contains("micromessenger"))
     {
         string openId = WeChatVerifyHelper.GetUserOpenIdCookie();
         string wechat = HYRequest.GetStringByParams("wechat");
         //Oauth验证链接
         if (string.IsNullOrEmpty(openId) && string.IsNullOrEmpty(wechat))
         {
             string redirect_url = HttpContext.Current.Request.Url.AbsoluteUri;
             if (redirect_url.Contains("?"))
             {
                 redirect_url = redirect_url + "&wechat=1";
             }
             else
             {
                 redirect_url = redirect_url + "?wechat=1";
             }
             string url = string.Format(@"https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + PayConfig.AppId + "&redirect_uri=" + HttpContext.Current.Server.UrlEncode(redirect_url) + "&response_type=code&scope=snsapi_base&state=123#wechat_redirect");
             HttpContext.Current.Response.Redirect(url);
         }
         //用户Oauth验证
         if (string.IsNullOrEmpty(openId) && !string.IsNullOrEmpty(wechat))
         {
             string      oauth_code = HYRequest.GetStringByParams("code");
             OAuthEntity entity     = SeniorService.UserOAuthInfo(PayConfig.AppId, PayConfig.AppSecret, oauth_code);
             if (entity.result)
             {
                 openId = entity.openid;
                 WeChatVerifyHelper.AddUserOpenIdCookie(openId);
             }
         }
         Log.WriteLog("OpenId", openId);
     }
     #endregion
 }
Example #12
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string openId = Request.Form["openid"].ToString();
        string accessToken = Request.Form["accesstoken"].ToString();
        string oAuthFrom = Request.Form["oauthfrom"].ToString();
        string nickName = Request.Form["nickname"].ToString();
        string userImage = Request.Form["userimage"].ToString();
        int type = Int32.Parse(Request.Form["type"].ToString());

        string userFrom = "";
        if (oAuthFrom.Length > 4)
        {
            userFrom = oAuthFrom.Replace("_", "");
            userFrom = userFrom.Insert(4, "_");
            oAuthFrom = userFrom.Substring(0, 4);
        }
        else
        {
            userFrom = oAuthFrom;
        }

        UserEntity user = new UserEntity();
        user.UserName = oAuthFrom + Utility.GetRandomNumber(10000, 99999);
        user.UserPassword = "******";
        user.UserNickName = nickName;
        user.UserImage = (userImage=="" ? "none.gif" : userImage);
        user.UserEmail = "";
        user.UserPhone = "";
        user.UserTheme = "main";
        user.UserFrom = userFrom;
        user.UserCity = "";

        OAuthEntity oAuth = new OAuthEntity();
        oAuth.OpenID = openId;
        oAuth.AccessToken = accessToken;
        oAuth.User = user;
        oAuth.OAuthFrom = oAuthFrom;
        oAuth.OAuthBound = 1;

        bool success = OAuthAccess.CheckOAuthLogin(oAuth.OpenID);
        if (!success)
        {
            success = OAuthAccess.InsertOAuth(oAuth);
            if (!success)
            {
                Response.Write("{\"result\":\"userid\":\"0\"}");
                Response.End();
            }
        }

        DataTable odt = OAuthAccess.GetOAuthByOpenId(oAuth.OpenID);
        int userId = Int32.Parse(odt.Rows[0]["UserID"].ToString());

        string result = "{";

        if (success)
        {
            user = UserAccess.GetUserById(userId);

            result += "\"userid\":\"" + userId + "\",";
            result += "\"username\":\"" + user.UserName + "\",";
            result += "\"userpass\":\"" + user.UserPassword + "\",";
            result += "\"usernickname\":\"" + user.UserNickName + "\",";
            result += "\"useremail\":\"" + user.UserEmail + "\",";
            result += "\"userphone\":\"" + user.UserPhone + "\",";
            result += "\"userimage\":\"" + user.UserImage + "\",";
            result += "\"userworkday\":\"" + user.UserWorkDay + "\",";
            result += "\"usermoney\":\"" + user.UserMoney + "\",";

            DataTable dt = null;
            if (type == 1)
            {
                dt = SyncHelper.SyncGetItemListWebFirst(userId);
            }
            else
            {
                dt = SyncHelper.SyncGetItemListWeb(userId);
            }
            if (dt.Rows.Count > 0)
            {
                result += "\"hassync\":\"1\",";
            }
            else
            {
                result += "\"hassync\":\"0\",";
            }

            result += "\"userbound\":\"1\"";
        }
        else
        {
            result += "\"userid\":\"0\",";
            result += "\"username\":\"\",";
            result += "\"userpass\":\"\",";
            result += "\"usernickname\":\"\",";
            result += "\"useremail\":\"\",";
            result += "\"userphone\":\"\",";
            result += "\"userimage\":\"\",";
            result += "\"userworkday\":\"\",";
            result += "\"usermoney\":\"0\",";
            result += "\"categoryrate\":\"0\",";
            result += "\"hassync\":\"0\",";
            result += "\"userbound\":\"0\"";
        }

        result += "}";

        Response.Write(result);
        Response.End();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        string openId      = Request.Form["openid"].ToString();
        string accessToken = Request.Form["accesstoken"].ToString();
        string oAuthFrom   = Request.Form["oauthfrom"].ToString();
        string nickName    = Request.Form["nickname"].ToString();
        string userImage   = Request.Form["userimage"].ToString();
        int    type        = Int32.Parse(Request.Form["type"].ToString());

        string userFrom = "";

        if (oAuthFrom.Length > 4)
        {
            userFrom  = oAuthFrom.Replace("_", "");
            userFrom  = userFrom.Insert(4, "_");
            oAuthFrom = userFrom.Substring(0, 4);
        }
        else
        {
            userFrom = oAuthFrom;
        }

        UserEntity user = new UserEntity();

        user.UserName     = oAuthFrom + Utility.GetRandomNumber(10000, 99999);
        user.UserPassword = "******";
        user.UserNickName = nickName;
        user.UserImage    = (userImage == "" ? "none.gif" : userImage);
        user.UserEmail    = "";
        user.UserPhone    = "";
        user.UserTheme    = "main";
        user.UserFrom     = userFrom;
        user.UserCity     = "";

        OAuthEntity oAuth = new OAuthEntity();

        oAuth.OpenID      = openId;
        oAuth.AccessToken = accessToken;
        oAuth.User        = user;
        oAuth.OAuthFrom   = oAuthFrom;
        oAuth.OAuthBound  = 1;

        bool success = OAuthAccess.CheckOAuthLogin(oAuth.OpenID);

        if (!success)
        {
            success = OAuthAccess.InsertOAuth(oAuth);
            if (!success)
            {
                Response.Write("{\"result\":\"userid\":\"0\"}");
                Response.End();
            }
        }

        DataTable odt    = OAuthAccess.GetOAuthByOpenId(oAuth.OpenID);
        int       userId = Int32.Parse(odt.Rows[0]["UserID"].ToString());

        string result = "{";

        if (success)
        {
            user = UserAccess.GetUserById(userId);

            result += "\"userid\":\"" + userId + "\",";
            result += "\"username\":\"" + user.UserName + "\",";
            result += "\"userpass\":\"" + user.UserPassword + "\",";
            result += "\"usernickname\":\"" + user.UserNickName + "\",";
            result += "\"useremail\":\"" + user.UserEmail + "\",";
            result += "\"userphone\":\"" + user.UserPhone + "\",";
            result += "\"userimage\":\"" + user.UserImage + "\",";
            result += "\"userworkday\":\"" + user.UserWorkDay + "\",";
            result += "\"usermoney\":\"" + user.UserMoney + "\",";

            DataTable dt = null;
            if (type == 1)
            {
                dt = SyncHelper.SyncGetItemListWebFirst(userId);
            }
            else
            {
                dt = SyncHelper.SyncGetItemListWeb(userId);
            }
            if (dt.Rows.Count > 0)
            {
                result += "\"hassync\":\"1\",";
            }
            else
            {
                result += "\"hassync\":\"0\",";
            }

            result += "\"userbound\":\"1\"";
        }
        else
        {
            result += "\"userid\":\"0\",";
            result += "\"username\":\"\",";
            result += "\"userpass\":\"\",";
            result += "\"usernickname\":\"\",";
            result += "\"useremail\":\"\",";
            result += "\"userphone\":\"\",";
            result += "\"userimage\":\"\",";
            result += "\"userworkday\":\"\",";
            result += "\"usermoney\":\"0\",";
            result += "\"categoryrate\":\"0\",";
            result += "\"hassync\":\"0\",";
            result += "\"userbound\":\"0\"";
        }

        result += "}";

        Response.Write(result);
        Response.End();
    }
Example #14
0
 /// <summary>
 /// 保存oauthEntity
 /// </summary>
 /// <param name="oauthEntity"></param>
 private void SaveToStore(OAuthEntity oauthEntity)
 {
     tokenService.SaveUserName_OAuthEntity(oauthEntity.UserName, oauthEntity);
     tokenService.SaveAccessToken(oauthEntity.Access_Token, oauthEntity);
     tokenService.SaveRefreshToken(oauthEntity.Refresh_Token, oauthEntity);
 }
Example #15
0
 /// <summary>
 /// 服务器中移除oauthEntity
 /// </summary>
 /// <param name="refeshToken"></param>
 /// <param name="oauthEntity"></param>
 private void RemoveOauthFromStore(string refeshToken, OAuthEntity oauthEntity)
 {
     tokenService.RemoveRefreshToken(refeshToken);
     tokenService.ReomveAccessToken(oauthEntity.Access_Token);
     tokenService.ReomveUserName_OAuthEntity(oauthEntity.UserName);
 }
Example #16
0
    //修改同步授权登录//
    public static bool SyncUpdateOAuth(OAuthEntity oAuth)
    {
        DbCommand comm = GenericDataAccess.CreateCommand();
        comm.CommandText = "SyncUpdateOAuth_v4";
        DbParameter param = comm.CreateParameter();
        param.ParameterName = "@UserID";
        param.Value = oAuth.User.UserID;
        param.DbType = DbType.Int32;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@OpenID";
        param.Value = oAuth.OpenID;
        param.DbType = DbType.String;
        param.Size = 100;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@OAuthBound";
        param.Value = oAuth.OAuthBound;
        param.DbType = DbType.Int32;
        comm.Parameters.Add(param);

        int result = -1;
        try
        {
            result = GenericDataAccess.ExecuteNonQuery(comm);
        }
        catch
        {
        }

        return (result != -1);
    }
Example #17
0
    //注册授权登录新用户//
    public static bool InsertOAuth(OAuthEntity oAuth)
    {
        DbCommand comm = GenericDataAccess.CreateCommand();
        comm.CommandText = "InsertOAuth_v4";
        DbParameter param = comm.CreateParameter();
        param.ParameterName = "@UserName";
        param.Value = oAuth.User.UserName;
        param.DbType = DbType.String;
        param.Size = 20;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@UserPassword";
        param.Value = oAuth.User.UserPassword;
        param.DbType = DbType.String;
        param.Size = 20;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@UserNickName";
        param.Value = oAuth.User.UserNickName;
        param.DbType = DbType.String;
        param.Size = 50;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@UserImage";
        param.Value = oAuth.User.UserImage;
        param.DbType = DbType.String;
        param.Size = 200;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@UserTheme";
        param.Value = oAuth.User.UserTheme;
        param.DbType = DbType.String;
        param.Size = 10;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@UserFrom";
        param.Value = oAuth.User.UserFrom;
        param.DbType = DbType.String;
        param.Size = 10;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@OpenID";
        param.Value = oAuth.OpenID;
        param.DbType = DbType.String;
        param.Size = 100;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@AccessToken";
        param.Value = oAuth.AccessToken;
        param.DbType = DbType.String;
        param.Size = 100;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@OAuthFrom";
        param.Value = oAuth.OAuthFrom;
        param.DbType = DbType.String;
        param.Size = 10;
        comm.Parameters.Add(param);

        param = comm.CreateParameter();
        param.ParameterName = "@OAuthBound";
        param.Value = oAuth.OAuthBound;
        param.DbType = DbType.Int32;
        comm.Parameters.Add(param);

        int result = -1;
        try
        {
            result = GenericDataAccess.ExecuteNonQuery(comm);
        }
        catch
        {
        }

        return (result != -1);
    }