MVC добавляет cookie в точку входа на основе строки запроса - PullRequest
0 голосов
/ 06 января 2012

Получен сценарий межсайтовой доступности файлов cookie (между настольным сайтом и мобильным сайтом).Когда кто-то входит как "http://www.xyz.com? Qrystring = 12345" ИЛИ "http://m.xyz.com? Qrystring = 12345" , я должен добавить файл cookie для домена (.xyz.ком).Реализовал его в настольном приложении Asp.Net, но хотел бы реализовать аналогичное на мобильном сайте Asp.Net MVC2.

Любые предложения о том, как захватить это с любой страницы мобильного сайта MVC.Это может быть любая страница на мобильном сайте (m.xyz.com/page1?qrystring=1234), с которой я могу добавить cookie. ИСПОЛЬЗОВАТЬ ASP.NET MVC2 и НЕ МОЖЕТ ИСПОЛЬЗОВАТЬ MVC3

Может ли использование события Application_BeginRequest в global.asax быть безопасным с приложением MVC в этом сценарии?

1 Ответ

1 голос
/ 06 января 2012

вы можете написать атрибут 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
{
   .
   .
   .
}

Конечно, вам придется изменить реализацию атрибута в соответствии с вашими требованиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...