将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/");
}
答案 0 :(得分:0)
我认为通过Session,Tempdata和Cookies的所有方法都可以正常工作。
我检查了您的代码,发现您正在使用ngrock进行本地主机重定向。
请确保在启动应用程序时使用http://localhost:port托管应用程序,并在重定向后使用ngRock域名确保任何方法无效
会话,临时数据和Cookies按域名存储
请检查从ngRock域开始的应用程序,并在重定向后检查是否获取数据?
这对您有帮助吗?
谢谢