第三者がコールバックを許可senparc、ファイルに認証情報を保存します

【HTTPGET】
         公衆 非同期タスク<IActionResult> OpenOAuthCallback(文字列 auth_code、ストリングappletId)
        { 
            試みる
            { 
                #region使用ComponentContainer
                 // 获取のOAuth授权结果
                QueryAuthResult queryAuthResultと、
                試す
                { 
                    queryAuthResult = ComponentContainer.GetQueryAuthResult(_senparcWeixinSetting.Component_Appid、auth_code、)。
                } 
                キャッチ(例外例)
                { 
                    スロー 新しい(例外を" QueryAuthResult:" + ex.Message); 
                } 
                #endregion 
                場合(queryAuthResult.authorization_info == NULLリターンJSON(queryAuthResult)。
                VaRの DIR = Path.Combine(Environment.CurrentDirectory + @ " / App_Dataに/ AuthorizerInfo / " + _senparcWeixinSetting.Component_Appid)。
                もし(!Directory.Exists(DIR))
                { 
                    Directory.CreateDirectory(DIR); 
                } 
                のvarファイル= Path.Combine(DIR、文字列 .Format("{0}の.bin 、queryAuthResult.authorization_info.authorizer_appid));
                 // 记录authorization_info(也可以存入数据库或其他可以持久化的地方
                使用(のFileStream FS = 新しいFileStreamを(ファイル、FileMode.OpenOrCreate、FileAccess.ReadWrite ))
                { 
                    VARの BF = 新しいSystem.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); 
                    bf.Serialize(FS、新しい RefreshAuthorizerTokenResult {authorizer_access_token = queryAuthResult.authorization_info.authorizer_access_token、expires_in = queryAuthResult.authorization_info.expires_in、authorizer_refresh_token = queryAuthResult。 authorization_info.authorizer_refresh_token})。 
                } 

                / /成功した認可、情報更新クライアントアプレットqueryAuthResult.authorization_info.miniprograminf後
                VAR getAuthorizerInfoResult = AuthorizerContainer.GetAuthorizerInfoResult(_senparcWeixinSetting.Component_Appid、queryAuthResult.authorization_info.authorizer_appid); 
               
                戻りJSON(queryAuthResult.authorization_infoを); 
            } 
            キャッチ(ErrorJsonResultException EX)
            { 
                戻りコンテンツ(ex.Messageを); 
            } 
        }

 

おすすめ

転載: www.cnblogs.com/SmilePastaLi/p/11269509.html