Хранить данные и получать после перенаправления на сторонний URL - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть некоторые данные, которые мне нужно получить после перенаправления моего URL в Yahoo Auth для аутентификации и токена доступа.Я попытался использовать Session и tempData, но оба очищаются после перенаправления и обратного вызова в другой ActionMethod.Пробовал также использовать HttpCookie, но он также не сохраняет значение.Как мне сохранить это значение и получить его после перенаправления в функцию обратного вызова?Что бы я ни пытался, я получаю нулевое значение.Сначала он сохраняется, но стирается после перенаправления.

public async Task<ActionResult> YahooAuth(int Id)
    {
        List<DataAccess.event_dates> yahooEvents = _iadminSettingsService.GetEventDatesByEventId(Id);
        Session["yahooEventObj"] = yahooEvents;
        TempData["yahoEvnts"] = yahooEvents;
        System.Web.HttpCookie cookie = new System.Web.HttpCookie("eventID", Id.ToString());
        Response.Cookies.Add(cookie);
        var url = "https://api.login.yahoo.com/oauth2/request_auth?client_id=XXX&redirect_uri=https://b0552ca5.ngrok.io/Event/YahooCalendar&response_type=code&language=en-us";
        return Redirect(url);
    }

[HttpGet]
    public async Task<ActionResult> YahooCalendar(string code)
    {
        List<DataAccess.event_dates> yahooEvents = (List<DataAccess.event_dates>)Session["yahooEventObj"];
        List<DataAccess.event_dates> lst = (List<DataAccess.event_dates>)TempData["yahoEvnts"];
        string Id = Request.Cookies["eventID"].ToString();
        List<DataAccess.event_dates> yahooEvents = _iadminSettingsService.GetEventDatesByEventId(Convert.ToInt16(Id));
        . . .

        return Redirect("https://calendar.yahoo.com/");
    }

1 Ответ

0 голосов
/ 28 ноября 2018

По моему мнению, все методы по Session, Tempdata и Cookies могут работать нормально.

Я проверил ваш код и обнаружил, что вы используете ngrock для перенаправления локального хоста.

пожалуйста, убедитесь, что при запускеВаше приложение, если оно размещено с http://localhost:port и после перенаправления, если оно с доменным именем ngRock, тогда любой из методов не работает

Сеансы, Tempdata и файлы cookie сохраняются по доменному имени

, пожалуйста, проверьтес приложением, начинающимся с домена ngRock и проверяющим, после перенаправления вы получаете данные или нет?

Может ли это помочь вам.

Спасибо

...