• 新浪,QQ,第三方登录


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using NetDimension.Weibo;
    using QConnectSDK;
    using QConnectSDK.Context;
    
    namespace ToothBond.Aiya.Web.Job.Controllers
    {
        public class U3LoginController : Controller
        {
    
            Client Sina = null;
            OAuth oauth =
                new OAuth(
                System.Configuration.ConfigurationManager.AppSettings["AppKey"],
                System.Configuration.ConfigurationManager.AppSettings["AppSecret"],
                System.Configuration.ConfigurationManager.AppSettings["CallbackURL"]);
    
            /// <summary>
            /// 新浪登录
            /// </summary>
            /// <returns></returns>
            public ActionResult SinaLogin()
            {
                Sina = new Client(oauth);
                string url = oauth.GetAuthorizeURL();
    
                return new RedirectResult(url);
            }
            /// <summary>
            /// QQ登录
            /// </summary>
            /// <returns></returns>
            public ActionResult QzoneLogin()
            {
                var context = new QzoneContext();
                string state = Guid.NewGuid().ToString().Replace("-", "");
                string scope = "get_user_info";
                var authenticationUrl = context.GetAuthorizationUrl(state, scope);
                HttpContext.Session["requeststate"] = state;
                return new RedirectResult(authenticationUrl);
            }
    
            /// <summary>
            /// 新浪回调
            /// </summary>
            /// <returns></returns>
            public ActionResult SinaCallback()
            {
                if (!string.IsNullOrEmpty(Request["code"]))
                {
                    Sina = new Client(oauth);
                    var token = oauth.GetAccessTokenByAuthorizationCode(Request["code"]);
                    string accessToken = token.Token;
    
                    string uid = Sina.API.Entity.Account.GetUID();
    
                    var dynamic_userInfo = Sina.API.Dynamic.Users.Show(uid);
    
                    //存cookie
                    TempData["uid"] = uid;
                    TempData["nickName"] = dynamic_userInfo.screen_name;
                    //TempData["from"] = dynamic_userInfo.location;
    
                    Session["uid"] = uid;
                    Session["nickName"] = dynamic_userInfo.screen_name;
    
                    return Redirect("/");
    
                }
                return View();
            }
            /// <summary>
            /// QQ回调
            /// </summary>
            /// <returns></returns>
            public ActionResult QzoneCallback()
            {
                if (!string.IsNullOrEmpty(Request["code"]))
                {
                    var verifier = Request.Params["code"];
                    QOpenClient qzone = null;
                    QConnectSDK.Models.User currentUser = null;
                    string state = Session["requeststate"].ToString();
                    qzone = new QOpenClient(verifier, state);
                    currentUser = qzone.GetCurrentUser();
                    string nickName = currentUser.Nickname;
                    string openId = qzone.OAuthToken.OpenId;
                    string accessToken = qzone.OAuthToken.AccessToken;
    
                    Session["uid"] = openId;
                    Session["nickName"] = nickName;
    
                    return Redirect("/");
                }
                return View();
            }
    
        }
    }

    新浪微薄 字段说明 - user
    id: 用户UID
    screen_name: 微博昵称
    name: 友好显示名称,同微博昵称
    province: 省份编码(参考省份编码表)
    city: 城市编码(参考城市编码表)
    location:地址
    description: 个人描述
    url: 用户博客地址
    profile_image_url: 自定义图像
    domain: 用户个性化URL
    gender: 性别,m--男,f--女,n--未知
    followers_count: 粉丝数
    friends_count: 关注数
    statuses_count: 微博数
    favourites_count: 收藏数
    created_at: 创建时间
    following: 是否已关注(此特性暂不支持)
    verified: 加V标示,是否微博认证用户
    字段说明 - status
    created_at: 创建时间
    id: 微博ID
    text: 微博信息内容
    source: 微博来源
    favorited: 是否已收藏
    truncated: 是否被截断
    in_reply_to_status_id: 回复ID
    in_reply_to_user_id: 回复人UID
    in_reply_to_screen_name: 回复人昵称
    thumbnail_pic: 缩略图
    bmiddle_pic: 中型图片
    original_pic:原始图片
    user: 作者信息
    retweeted_status: 转发的博文,内容为status,如果不是转发,则没有此字段
  • 相关阅读:
    《转》MFC六大关键技术之(五)(六)——消息映射与命令传递
    《转》MFC六大关键技术之(四)——永久保存(串行化)
    《转》MFC六大关键技术之(三)——动态创建
    《转》MFC六大关键技术之(二)——运行时类信息(RTTI)
    《转》MFC六大关键技术之(一)—— 初始化过程
    C++ 语言的 15 个晦涩特性
    QT的项目管理文件pro的编写
    使用C++编写的一个Find(查找)对话框例子
    如何让Fedora能够打开RAR文件
    Undefined symbols for architecture i386:和"_OBJC_CLASS_$_xx", referenced from:问题解决方法
  • 原文地址:https://www.cnblogs.com/LanWorld/p/3865915.html
Copyright © 2020-2023  润新知