获得了Cookie的跨站点可用性(桌面站点和移动站点之间)的场景。当有人进来时“http://www.xyz.com?qrystring=12345”或“http://m.xyz.com?qrystring=12345” ,我必须为域添加一个cookie(.xyz.com)。在Asp.Net桌面应用程序中实现了它,但是想在Asp.Net MVC2移动站点中实现类似的功能。
有关如何从MVC移动网站的任何页面捕获该建议的任何建议。它可以是移动网站上的任何页面(m.xyz.com/page1?qrystring=1234),我可以从中添加cookie。 使用ASP.NET MVC2并且不能使用MVC3
在这种情况下,使用MVC应用程序在global.asax中使用Application_BeginRequest事件是否安全?
答案 0 :(得分:1)
你可以编写一个actionrilter属性并用它来装饰你的控制器,如
public class CookieStateAttribute : ActionFilterAttribute
{
string __key = "querystring";
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
var viewData = filterContext.Controller.ViewData;
var request = filterContext.HttpContext.Request;
if (request.Cookies[__key] != null)
{
HttpCookie cookie = request.Cookies[__key];
//do something with cookie value
}
else
{
var cookie = new HttpCookie(__key, "value");
request.Cookies.Add(cookie);
}
}
}
然后你可以使用像
这样的属性来装饰你的控制器[CookieState]
public class HomeController:Controller
{
.
.
.
}
当然,您必须根据您的要求更改属性的实现。