• 新浪OAuthclient登陆另辟蹊径


    题记:这是一段七月份写的代码了。忘记有没有做过优化了,随便看看吧。

    前言:当时七月份刚接触的时候,client登陆授权方式早就已经取消了,于是就考虑用网页登陆方式来间接模拟下吧,这样password也安全点,无非就是拿个Token嘛。

    使用哪一家的SDK相信您能够看出来偷笑

    //先上代码吧
    myOuth = new NetDimension.Weibo.OAuth(AppKey, AppSecret, Properties.Settings.Default.CallbackUrl );
    OuthWeb myWeb = new OuthWeb(myOuth.GetAuthorizeURL());						//传入获取授权地址
    myWeb.callBakUrl = myOuth.CallbackUrl;
    myWeb.fatherFrm = this; 									//向子窗体传递父窗体,用于写入返回值
    myWeb.ShowDialog();
    myOuth.GetAccessTokenByAuthorizationCode(AccToken); 						//请注意这里返回的是AccessToken对象,不是string
    if (!string.IsNullOrEmpty(myOuth.AccessToken))
    {
    	Properties.Settings.Default.AcessToken = myOuth.AccessToken;
    	Properties.Settings.Default.Save(); 
    	MessageBox.Show("授权成功", "恭喜^_^", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    else
    {
    	MessageBox.Show("AccessToken Failed!");
    }

    子窗体訪问调用析构函数传參过来的URL,然后在页面完毕时检測带回參的URL:

    private void MainWeb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
    	if (e.Url.ToString().IndexOf(callBakUrl) == 0)
    	{
    		string referUrl = e.Url.ToString();
    		fatherFrm.AccToken =								//向父窗体写入AccessToken
                         referUrl.Substring(
                             referUrl.IndexOf("code") + 5
                         );               
                    this.Close();
    	}
    
    }

    这样就间接地实现了client登陆。跟模拟OAuth登陆有点差别。



  • 相关阅读:
    Vue使用QrCode插件生成二维码
    简述Vue的路由与视图
    EntityFrameworkCore将数据库Timestamp类型在程序中转为long类型
    Linux常用命令——软件包管理
    Linux常用命令——文本编辑器Vim
    Linux常用命令——关机重启命令
    Linux常用命令——网络命令
    Linux常用命令——压缩解压命令
    Linux常用命令——文件搜索命令
    .NET Core 配置GC工作模式与内存的影响
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6754001.html
Copyright © 2020-2023  润新知