예제 #1
0
        /// <summary>
        /// 请求用户授权认证
        /// </summary>
        /// <param name="setting"></param>
        /// <returns></returns>
        public static string RequestUserAuthPtl(this QzoneRequestAuthSetting setting)
        {
            if (String.IsNullOrEmpty(setting.AppId) || String.IsNullOrEmpty(setting.RedirectUri) ||
                setting.Scope == null || !setting.Scope.Any())
            {
                throw new ArgumentException(@"传递的设置有问题");
            }

            //http://weixinchat.ngrok.com/Response.aspx
            //TODO 后续版本中支持从date 获取Session
            var          urlEncoded = HttpUtility.UrlEncode(setting.RedirectUri);
            const string format     = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id={0}&redirect_uri={1}&scope={2}&state={3}";
            var          url        = string.Format(format, setting.AppId, urlEncoded,
                                                    String.Join(",", setting.Scope), "qzone");

            return(url);
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //创建一个会话生成器,该生成器用来生成和认证服务器的会话
            QzoneAuthenticationSessionBuilder sessionBuilder = new QzoneAuthenticationSessionBuilder();

            //传递给认证服务器的协议参数,具体http://mp.weixin.qq.com/wiki/index.php?title=网页授权获取用户基本信息
            var setting = new QzoneRequestAuthSetting("http://weixinchat.ngrok.com/Response.aspx")
            {
                AppId = "AppId", Scope = new List <string>()
                {
                    QzoneScope.get_user_info.ToString()
                }
            };

            //因为该事例采用server-side方式来认证,所以直接引导用户到提供商认证服务器的页面处理器上去
            var wxAuthenticationSession = sessionBuilder.Build(setting);

            if (wxAuthenticationSession != null)
            {
                wxAuthenticationSession.Direct(Response);
            }
        }