Возвратитесь к относящейся странице

Ваш вопрос по сути такой же, как этот: Handlebars.js - доступ к значению объекта с помощью переменного ключа

Единственная дополнительная деталь - вам нужно использовать [ 117] Подвыражения на руле для выполнения двух поисков (сначала из @key; затем из 'name').

Подвыражение позволит вам найти значение @key на ../a и передать его во второй поиск значения 'name' в результате первого поиска.

Соответствующей строкой в ​​вашем шаблоне становится:

{{lookup (lookup ../a @key) 'name'}}

Вот вам скрипка: https://jsfiddle.net/76484/b0puy52n/

7
задан Adam Bellaire 8 October 2008 в 17:50
поделиться

3 ответа

В случае, если Вы используете FormsAuthentication, когда ASP.NET перенаправляет пользователя к странице входа в систему, URL выглядит примерно так:

http://www.mysite.com/Login?ReturnUrl=/Something

Атрибут действия формы входа в систему должен иметь тот же параметр ReturnUrl (или, как скрытый введено или как часть URL) так, чтобы FormsAuthentication мог взять его и перенаправление, например.

<form action="Login?ReturnUrl=<%=Html.AttributeEncode(Request.QueryString["ReturnUrl"]) %>"></form>

или

<form><input type="hidden" name="ReturnUrl" id="ReturnUrl" value="<%=Html.AttributeEncode(Request.QueryString["ReturnUrl"])"%> /></form>
3
ответ дан 7 December 2019 в 12:26
поделиться

Необходимо всегда удостоверяться, что относящийся URL в домене и вероятной строке, из которой они могли происходить. Иначе это имеет потенциал того, чтобы быть используемым с флэш-памятью или другими клиентскими технологиями, чтобы сделать вещи как разделение ответа или другие нападения, известные и неизвестные.

Ссылающийся домен HTTP является вводом данных пользователем, и он должен быть проверен как любой другой.

0
ответ дан 7 December 2019 в 12:26
поделиться

То, что я сделал для достижения того результата, могло бы переусердствовать его, и я хотел бы видеть некоторые другие методы также. Однако вот мой код.

Обратите внимание, что это использует Moq для насмешки контекста... И, я ничего еще не сделал с querystring (мои маршруты не содержат querystrings).

var urlReferrer = Request.UrlReferrer;
if (urlReferrer != null)
{
    var url = "~" + Server.UrlDecode(urlReferrer.PathAndQuery);

    // get routecollection
    var routeCollection = new RouteCollection();
    GlobalApplication.RegisterRoutes(routeCollection);

    // mcok context
    var context = new Mock<HttpContextBase>();
    var request = new Mock<HttpRequestBase>();
    context.Expect(ctx => ctx.Request).Returns(request.Object);

    // mock request
    // TODO: convert querystring to namevaluecollection
    // now it's just stripped
    if (url.IndexOf('?') > 0)
    {
        url = url.Substring(0, url.IndexOf('?'));
    }

    var mock = Mock.Get(context.Object.Request);

    // TODO: insert namevaluecollection of querystring
    mock.Expect(req => req.QueryString).Returns(new NameValueCollection());
    mock.Expect(req => req.AppRelativeCurrentExecutionFilePath).Returns(url);
    mock.Expect(req => req.PathInfo).Returns(string.Empty); 

    // get routedata with mocked context
    var routeData = routeCollection.GetRouteData(context.Object);
    var values = routeData.Values;

    return RedirectToAction(routeData.Values["action"].ToString(), values);
}

Как я сказал, это, возможно, немного сверхсложно :)

2
ответ дан 7 December 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: