存储数据并在重定向到第三方后检索 URL
Store data and retrieve after redirect to third party URL
在将我的 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/");
}
我认为 Session、Tempdata 和 Cookies 的所有方法都可以正常工作。
我检查了你的代码,发现你正在使用 ngrock 进行本地主机重定向。
请确保当您启动您的应用程序时,如果它使用 http://localhost:port 托管,并且在重定向后如果它使用 ngRock 域名,那么任何方法都不起作用
Session、Tempdata 和 Cookies 按域名存储
请检查以 ngRock 域开头的应用程序,并检查重定向后是否获取数据?
希望对您有所帮助。
谢谢
在将我的 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/");
}
我认为 Session、Tempdata 和 Cookies 的所有方法都可以正常工作。
我检查了你的代码,发现你正在使用 ngrock 进行本地主机重定向。
请确保当您启动您的应用程序时,如果它使用 http://localhost:port 托管,并且在重定向后如果它使用 ngRock 域名,那么任何方法都不起作用
Session、Tempdata 和 Cookies 按域名存储
请检查以 ngRock 域开头的应用程序,并检查重定向后是否获取数据?
希望对您有所帮助。
谢谢