0
我已經創建了一個全新的ASP.Net 4.6 MVC項目,並試圖在請求Cookie集合中設置一個值並在下一個請求中檢索它。我正在使用Cookie,因爲Application_BeginRequest
方法中尚未提供Session
。使用下面的代碼,我要求的cookie值在我所做的每個請求中都是null,儘管它設置了它。設置cookie不會在Web請求之間持續
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
protected void Application_BeginRequest()
{
var cookie = this.Request.Cookies.Get("Foo");
string value = cookie?.Value;
if (string.IsNullOrEmpty(value))
{
cookie = new HttpCookie("Foo", "Bar");
cookie.Expires = System.DateTime.UtcNow.AddHours(1);
this.Request.Cookies.Add(cookie);
}
}
protected void Application_EndRequest()
{
var cookie = this.Request.Cookies.Get("Foo");
string value = cookie?.Value;
}
}
我在做什麼錯?我見過的所有關於cookies的帖子都顯示了以這種方式設置/獲取它們,其中Request.Cookies.Get
/Request.Cookies.Add
。
我已經試過了,但它從來沒有擊中。我會設置一箇中斷點,VS永遠不會在這個方法中破壞。 –
我最終通過設置我的Cookie與響應而不是請求來修復它。在下一次請求中,Cookie值可供我使用。謝謝你 –
打到Application_BeginRequest後,它應該去Application_AcquireRequestState –