/// <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); }
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); } }