C# 验证用户并从事件中返回数据

C# 验证用户并从事件中返回数据,c#,C#,因此,我有一个问题,我正在创建一个spotifywebapi程序,该程序将查询用户一生中、6个月和6个月内的热门曲目/艺术家。这是使用找到的SpotifyNet客户端 我希望用户能够加载页面,进行身份验证,然后返回数据。。因此,目前我有一个web api方法可以返回数据,但我遇到了一些问题,因为我必须在查询api之前等待身份验证 [HttpGet] //void until i get it working public void Get() {

因此,我有一个问题,我正在创建一个spotifywebapi程序,该程序将查询用户一生中、6个月和6个月内的热门曲目/艺术家。这是使用找到的SpotifyNet客户端

我希望用户能够加载页面,进行身份验证,然后返回数据。。因此,目前我有一个web api方法可以返回数据,但我遇到了一些问题,因为我必须在查询api之前等待身份验证

    [HttpGet]
    //void until i get it working
    public void Get()
    {
        ImplicitGrantAuth auth = new ImplicitGrantAuth(
            "clientID",
            "http://localhost:4002",
            "http://localhost:4002",
            Scope.UserReadPrivate
        );

        auth.AuthReceived += async (sender, payload) =>
        {
            auth.Stop(); // `sender` is also the auth instance
            SpotifyWebAPI api = new SpotifyWebAPI()
            {
                TokenType = payload.TokenType,
                AccessToken = payload.AccessToken
            };
            Paging<FullTrack> shortTermTracks = api.GetUsersTopTracks(TimeRangeType.ShortTerm, 50, 0);
            Paging<FullTrack> mediumTermTracks = api.GetUsersTopTracks(TimeRangeType.MediumTerm, 50, 0);
            Paging<FullTrack> longTermTracks = api.GetUsersTopTracks(TimeRangeType.LongTerm, 50, 0);

        //NEED TO RETURN THIS DATA ABOVE BUT AUTHENTICATION HASNT OCCURED
        };
        auth.Start(); // Starts an internal HTTP Server
        auth.OpenBrowser();
    }
[HttpGet]
//无效,直到我让它工作
公开作废获取()
{
隐式Grantuth auth=新隐式Grantuth(
“客户ID”,
"http://localhost:4002",
"http://localhost:4002",
Scope.UserReadPrivate
);
auth.AuthReceived+=异步(发送方,有效负载)=>
{
auth.Stop();//`sender`也是auth实例
SpotifyWebAPI=新的SpotifyWebAPI()
{
TokenType=有效负载。TokenType,
AccessToken=payload.AccessToken
};
分页shortTermTracks=api.GetUsersTopTracks(TimeRangeType.ShortTerm,50,0);
分页mediumTermTracks=api.GetUsersTopTracks(TimeRangeType.MediumTerm,50,0);
分页longTermTracks=api.GetUsersTopTracks(TimeRangeType.LongTerm,50,0);
//需要返回上述数据,但未进行身份验证
};
auth.Start();//启动内部HTTP服务器
auth.OpenBrowser();
}

我的想法是可能对用户进行身份验证,然后进行身份验证。。使用令牌重定向它们并返回数据,但如何将令牌传递到重定向页面?

在Github页面上打开一个问题,因为您的示例不起作用,因此,必须有人设置一个wait方法,这样它才能确保在向我发送web requestseems之前经过身份验证,就像您需要实现spotifyapi将重定向到的身份验证端点一样。请参见此处的重定向uri说明: