Что такое код asp notifyurlmap


Содержание

Авторизация на основе утверждений в ASP.NET Core Claims-based authorization in ASP.NET Core

При создании удостоверения ему может быть назначено одно или несколько утверждений, выданных доверенной стороной. When an identity is created it may be assigned one or more claims issued by a trusted party. Утверждение — это пара «имя-значение», которая представляет предметную тему, а не то, что может делать субъект. A claim is a name value pair that represents what the subject is, not what the subject can do. Например, у вас может быть лицензия драйвера, выданная локальным центром лицензий. For example, you may have a driver’s license, issued by a local driving license authority. У лицензии вашего драйвера есть Дата рождения. Your driver’s license has your date of birth on it. В этом случае имя утверждения будет DateOfBirth , значение утверждения — это Дата рождения, например 8th June 1970 и издатель будет центром сертификации. In this case the claim name would be DateOfBirth , the claim value would be your date of birth, for example 8th June 1970 and the issuer would be the driving license authority. Авторизация на основе утверждений, в самом простом, проверяет значение утверждения и разрешает доступ к ресурсу на основе этого значения. Claims based authorization, at its simplest, checks the value of a claim and allows access to a resource based upon that value. Например, если требуется доступ к ночному клубу, процесс авторизации может быть следующим: For example if you want access to a night club the authorization process might be:

Директор по безопасности дверцы вычислит значение даты утверждения о рождении и получит ли он доверие к издателю (Управление центром лицензий) перед предоставлением доступа. The door security officer would evaluate the value of your date of birth claim and whether they trust the issuer (the driving license authority) before granting you access.

Удостоверение может содержать несколько утверждений с несколькими значениями и может содержать несколько утверждений одного типа. An identity can contain multiple claims with multiple values and can contain multiple claims of the same type.

Добавление проверок утверждений Adding claims checks

Проверки авторизации на основе утверждений являются декларативными — разработчик внедряет их в код для контроллера или действия в пределах контроллера, указывая утверждения, которыми должен обладать текущий пользователь, и, при необходимости, значение, которое должно храниться в заявке для доступа к запрошенный ресурс. Claim based authorization checks are declarative — the developer embeds them within their code, against a controller or an action within a controller, specifying claims which the current user must possess, and optionally the value the claim must hold to access the requested resource. Требования к утверждениям основаны на политиках. разработчик должен создать и зарегистрировать политику, которая выражает требования к утверждениям. Claims requirements are policy based, the developer must build and register a policy expressing the claims requirements.

Простейший тип политики утверждений ищет наличие утверждения и не проверяет его. The simplest type of claim policy looks for the presence of a claim and doesn’t check the value.

Сначала необходимо создать и зарегистрировать политику. First you need to build and register the policy. Это происходит как часть конфигурации службы авторизации, которая обычно принимает участие в ConfigureServices() в файле Startup.CS . This takes place as part of the Authorization service configuration, which normally takes part in ConfigureServices() in your Startup.cs file.

В этом случае EmployeeOnly политика проверяет наличие EmployeeNumber утверждения для текущего удостоверения. In this case the EmployeeOnly policy checks for the presence of an EmployeeNumber claim on the current identity.

Затем примените политику, используя свойство Policy атрибута AuthorizeAttribute , чтобы указать имя политики. You then apply the policy using the Policy property on the AuthorizeAttribute attribute to specify the policy name;

Атрибут AuthorizeAttribute можно применить ко всему контроллеру. в этом экземпляре будет разрешен доступ к любому действию на контроллере только в удостоверениях, соответствующих политике. The AuthorizeAttribute attribute can be applied to an entire controller, in this instance only identities matching the policy will be allowed access to any Action on the controller.

Если у вас есть контроллер, защищенный атрибутом AuthorizeAttribute , но хотите разрешить анонимный доступ к определенным действиям, примените атрибут AllowAnonymousAttribute . If you have a controller that’s protected by the AuthorizeAttribute attribute, but want to allow anonymous access to particular actions you apply the AllowAnonymousAttribute attribute.

Большинство заявок поставляются со значением. Most claims come with a value. При создании политики можно указать список допустимых значений. You can specify a list of allowed values when creating the policy. Следующий пример будет выполнен только для сотрудников, чей номер сотрудника был 1, 2, 3, 4 или 5. The following example would only succeed for employees whose employee number was 1, 2, 3, 4 or 5.

Добавление проверки универсального утверждения Add a generic claim check

Если значение утверждения не является одним значением или требуется преобразование, используйте рекуиреассертион. If the claim value isn’t a single value or a transformation is required, use RequireAssertion. Дополнительные сведения см. в разделе Использование функции func для выполнения политики. For more information, see Using a func to fulfill a policy.

Оценка нескольких политик Multiple Policy Evaluation

При применении нескольких политик к контроллеру или действию все политики должны пройти до предоставления доступа. If you apply multiple policies to a controller or action, then all policies must pass before access is granted. Пример: For example:

В приведенном выше примере любое удостоверение, удовлетворяющее политике EmployeeOnly , может получить доступ к действию Payslip , так как эта политика применяется на контроллере. In the above example any identity which fulfills the EmployeeOnly policy can access the Payslip action as that policy is enforced on the controller. Однако для вызова действия UpdateSalary удостоверение должно выполнять как политику EmployeeOnly , так и политику HumanResources . However in order to call the UpdateSalary action the identity must fulfill both the EmployeeOnly policy and the HumanResources policy.

Если вы хотите использовать более сложные политики, например, выполнив утверждение о рождении, вычисляя возраст из него, а затем проверив возраст на 21 или более раннюю версию, необходимо написать пользовательские обработчики политик. If you want more complicated policies, such as taking a date of birth claim, calculating an age from it then checking the age is 21 or older then you need to write custom policy handlers.

Что такое код asp notifyurlmap

Самым актуальный способом создать REST сервис в стеке технологий Майкрософт на сегодняшний день является ASP.NET Web API. До того эта технология значилась как WCF Web API и больше по названию тяготела к WCF. Но уже тогда там использовались сходные походы как в ASP.NET MVC, включая роутинг (routing). До нее существовали такие вещи как WCF 4 REST, WCF REST Starter Kit 3.5. Их все еще можно встретить на старых проектах и stackoverflow пестрит вопросами о них. Но то что ASP.NET Web API используется на новых проектах, а некоторые старые конвертируются, чтобы его использовать – радует. Так как предшественники были хуже как в плане технологии (приходилось писать много boilerplating code), удобства использования так и документации.

В предыдущих постах были рассмотрены некоторые теоретические аспекты REST – теперь создадим простой REST сервис с помощью Web API и рассмотрим ключевые элементы такого сервиса.
Начать стоит с подключения NuGet packages (и/или установки ASP.NET MVC):

  1. Web API, в случае если хостимся в ASP.NET:AspNetWebApi
  2. Self-hosted Web API:AspNetWebApi.Selfhost
  3. HttpClient включая XML и JSON форматеры:System.Net.Http.Formatting
  4. JsonValue для навигации и манипуляции JSON:System.Json

В нашем случае, мы создадим просто сервис, который хостится на ASP.NET MVC, а также посмотрим на принцип создания интеграционных тестов к нему, которые будут поднимать self-hosted REST сервис в тестовом контексте. Акцент на Data access layer делятся не будет, если в процессе вам необходимо прикрутить DAL, например, с использованием Entity Framework Code First, то я писал об одном из возможных подходов раньше.

Перед тем как создавать такой сервис необходимо также понимать что использовать Web API стоит если есть тесная связка с веб-клиентом, если сервис содержит логику выходящую за рамки CRUD операций. Если же у вас сервис по сути своей поставщик данных, т.е. операции в основном CRUD, то лучше использовать WCF Data Services, так как там много вещей из коробки генерится под базу — и CRUD операции и нормальная поддержка OData и IQuerable (в ASP.NET Web API она ограничена), которые позволяют делать запросы к сервису и данным с помощью Uri и специального OData синтаксиса.

Итак преступим. Для начала создадим новый проект ASP.NET MVC4:

Изображение 1
Естественно темплейт (шаблон) для MVC 4 нагенерит нам типичную структуру ASP.NET MVC проекта (файл ValuesController я уже успел переименовать на DocumentsController). Отличие в дополнительном контроллере для Web API. По умолчанию это ValuesController, естественно его необходимо переименовать.

В нашем случае он стал DocumentsController. Из темплейта этот контроллер содержит операции заглушки для Get, Post, Put, Delete. В просто случае переопределим эти операции для DocumentsController и ресурса Document. Получится вот такой вот контроллер:

Это простой вариант, и здесь не используются фильтры для обработки сообщений или dependency resolvers. В свою очередь IDocumentRepository реализовано как простая заглушка и если дальше развивать тему с нормальным доступом к данным то реализацию можно подставить любую.
Теперь проверим операции. Это сделать можно используя Fiddler и правильно сформировав запрос. Например операция получения всех документов, используем адрес http://127.0.0.1:81/api/documents/. Используется стандартный роутинг из коробки:

Итак, запрос на http://127.0.0.1:81/api/documents/ должен вызвать метод IEnumerable Get() :

Так и есть, нам вернулся список в виде XML из двух элементов. Теперь попробуем content negotiation из коробки в действии. К тому же самому вызову добавим HTTP заголовок – Accept:application/json. Итак запрос:

Ответ ожидаем в Json:

Из коробки идут два стандартных форматера – XML и Json, но есть возможность добавлять свои.

Аналогичным образом будут работать остальные операции. Единственное попробуем еще запросить документ с недействительным идентификатором. Будем вызывать метод Document Get(string id) по адресу http://127.0.0.1:81/api/documents/9505a3b549b54881b3ed83fc19510534, где 9505a3b549b54881b3ed83fc19510534 – недействительный идентификатор, изменили последнюю цифру.

Ожидается ответ 404 NotFound. Результат запроса:


Вот таким вот образом можно создать и протестировать на работоспособность простенький REST сервис на базе ASP.NET Web API.

Основные концепты — ApiController

Так как мы имеем дело с REST сервисом. То из всего этого добра нас интересуют на начальном этапе контроллеры и роутинг. Контроллеры для Web API REST сервиса наследуются от от класса ApiController, который в свою очередь от интерфейса IHttpController. И ApiController несет с собой много добра, кроме конечно того что она автоматом распознается и выполняется. Из всего этого добра самое интересное являются свойства Request и Configuration.

Основные концепты – Routing (Роутинг)

При вызове операций с контроллера важный момент играет routing. Именно routing позволяет подсистеме WebApi связать Uri адрес и конкретную операцию из контроллера. Причем есть несколько вариантов — либо операция-action помечается атрибутом, либо используется договоренность именовать операции с префиксом – Http Verb. Например, в методе PostDocument – именно префикс Post позволяет сказать Web Api что эта операция связанна с Uri и вызывается по соответствующему адресу с HTTP Verb – POST.
Еще одним вариантом для того, чтобы помочь выделить среди методов контроллера операции, которые связанны с URL – использование атрибутов — HttpGet, HttpPut, HttpPost, или HttpDelete, каждый из них соответствует такому же HTTP Verb – GET, PUT, POST, DELETE. Для того, чтобы навесить на операцию больше чем один HTTP Verb, или операцию отличную от 4 базовых (GET, PUT, POST, DELETE), используется атрибут – AcceptVerbs. Использование атрибутов также дает возможность отказаться от конвенции именования методов, когда префиксом выступает HTTP Verb.

Илон Маск рекомендует:  Что такое код polygon

А для того чтобы избежать мапинга (mapping) метода как action используется атрибут NonAction без параметров.
Есть еще способ роутинга, когда каждый мапинг делается по средством атрибутов на метод, а не глобальным роутингом через Global.asax.cs, но о нем позже, так как он не стандартный. Хотя на этапе WCF Web API использовался именно он.

Routing по-умолчанию в Web API устанавливается как в методе RegisterRoutes на изображении 5 ниже. При использовании такого routing необходимо придерживаться конвенции именования методов в контроллере, когда каждый метод начинается с HTTP Verb префикса.

Ну и естественно важная часть маппинга – routing в Global.asax.cs:

Соответственно под роутинг «api//» подпадают URLs и примерные имена методов:
Можно также сделать роутинг по имени action. Он не создается по-умолчанию темплейтом проекта. Например:
В случае с таким роутингом необходимо использовать атрибуты HttpGet, HttpPut, HttpPost, HttpDelete или AcceptVerbs чтобы указать на какие методы мапить . В WCF WebAPI использовался роутинг с помощью атрибутов, его тоже можно прикрутить, но об этом отдельно.

Основные концепты — HttpResponseMessage, HttpRequestMessage

По сути это два спец класса которые используются достаточно часто. Они нужны для того чтобы иметь возможность оперировать запросом и ответом. HttpRequestMessage можно получить через свойство Request от ApiController (Изображение 6). Tак как Web API контроллеры всегда наследуются от ApiController, то его можно получить в середине любого из наших контроллеров. HttpRequestMessage позволяет нам управлять запросом, например извлекать из него данные из HTTP Body либо HTTP Headers которые нам нужны.

HttpResponseMessage можно создать, чтобы вернуть результат, либо просто Response код (Изображение 7), либо еще и с нагрузкой, запаковав в его свойство Content, нужный нам HttpContent, например для бинарных данных подойдет наследник от HttpContent – StreamContent. Из свойства Request можно вычитать бинарные данные документа, который пришел с клиента:

Возврат ошибок — HttpResponseException

Вернуть ответ с ошибкой можно как с помощью HttpResponseMessage, указав код ошибки, так и с помощью специального класса HttpResponseException. Например, на изображении 7 на клиент возвращается ошибка InternalServerError = 500 с коротким описанием. Описание умеют читать далеко не все клиенты или клиентские библиотеки (были проблемы с iPad), в таком случае в тело сообщения с ошибкой можно писать объект более детально описывающий проблему, например свой кастомный объект с сообщением и кодом ошибки.

Хостинг

Само собой разумеется, что Web API REST сервис может хоститься на IIS либо вместе с ASP.NET MVC клиентом либо раздельно. Также его можно легко захостить вместе с ASP.NET MVC Web Role в облаке на Windows Azure. Но интересно, что Web API также можно хостить у себя в приложении, в памяти. Это значительно расширяет круг сценариев, в которых Web API может использоваться. Например с self-hosted Web API можно легко делать интеграционные тесты, которые поднимут во время тестирования self-hosted Web API сервис.

Например, на изображение 8 ниже, показано как поднимается с self-hosted Web API сервис для интеграционного теста в методе BecauseOf.

Клиент

Клиентов к Web API REST может быть большое множество – есть куча библиотек под разные платформы для REST, можно обращаться к REST сервису c веб страницы по средством JavaScript и jQuery, можно использовать “старенький” класс WebClient для десктоп клиента. Вместе с Web API новым для .NET является также новый HttpClient, который очень легко использовать с десктоп клиента или тестового сценария (пример на изображении 8 метод should_make_tivial_get), и к тому же он изначально спроектирован асинхронным.

Вытащить html код с сайта, работающего на asp.net

Создам свою тему.
Имеем ресурс:
fedresurs.ru/messages

При наборе любого фильтра выдаются сообщения, по 20 на страницу. Имеем переключалку страниц.
Переключение страниц — событие, при котором не обновляется вся страница, а только блок(сайт сделан на asp.net) Т.е. если посмотреть начальный (исходный) код страницы сначала только после ввода фильтра, и потом после переключения страниц — то он не меняется.
А мне нужно отпарсить хтмл код по каждой из этих страниц. Подскажите, как вытянуть эти странички? Какой то особый ПОСТ-запрос нужен ?

29.05.2014, 11:48

Где находится html-код в ASP.NET Visual Studio
Здравствуйте, у меня такое задание оптимизировать сайт. я хотела добавить мета тегов в html.

Как средствами ASP или ASP.NET преобразовать страницу html в PDF документ?
день добрый. попытался поискать по и-нету и релибу. но ничего вразумительного не нашёл. не.

как вытащить JS-файл из библиотеки asp.net
Народ подскажите, как вытащить JS-файл из библиотеки asp.net. Т.Е. при загрузке страницы, V.Studio.

ASP.NET +HTML
Как обратиться к к элементу HTML из CS файла

HTML и ASP net
Всем привет! в общем, у есть сайт на HTML + CSS как в него внедрить C# ? или например есть 2.

29.05.2014, 14:30 2 30.05.2014, 09:09 [ТС] 3 30.05.2014, 14:34 4
30.05.2014, 14:34
30.05.2014, 14:56 [ТС] 5

30.05.2014, 15:06 6

Вам нужен:
1) http://www.telerik.com/fiddler — The free web debugging proxy for any browser, system or platform. (.NET)
2) http://portswigger.net/burp/ — По мне более привычный, и имеет свои плюсы. (.JAVA)

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

Проверьте мой код notify_url для PayPal

notify_url.php

Форма HTML

Приведенный выше код является то, что у меня есть в моем файле notify_url.php. Моя база данных не обновляется :(. С моим файлом подключения все в порядке. И когда я ставлю число вместо переменной POST, она работает нормально. Это означает, что моя переменная POST может быть неправильной или сценарий вообще не вызывается!

Редактировать:
Второй код — это форма, созданная на веб-сайте PayPal (кнопка «Купить»).

Решение

Редактировать:

У тебя есть value=10.95 Заверните в кавычки value=»10.95″ — Это не имеет большого значения, но хорошая практика.

также if(isset($_POST[‘amount’])) <. >или же if(!empty($_POST[‘amount’]))

убедившись, что ваша колонка DECIMAL с длиной / значениями, такими как 10,2 например, чтобы иметь возможность принимать десятичные дроби, такие как 10,95

Способ, которым я проверял это, использовал:

Или вы можете попробовать использовать сцепления:

Кроме того, ваше сообщение должно быть action=»notify_url.php» а не то, что вы используете сейчас.

Оригинальный ответ до того, как вы разместили свою HTML-форму:

У меня есть подозрение, что ваш элемент формы не имеет атрибута имени и / или значения, а также не использует метод POST.

Если ваша форма не имеет определенного метода POST, так как вы используете $_POST[‘amount’] , по умолчанию это будет метод GET, который, в свою очередь, завершится с ошибкой.

Поскольку вы не разместили свою HTML-форму, вы можете основываться на любом из следующего:

Если используется скрытый тип с предустановленным значением: (в данном случае я использовал 1000).

Если из пользовательского ввода:

Вы также можете проверить, установлен ли элемент формы пустым, используя:

if(isset($_POST[‘amount’])) <. >или же if(!empty($_POST[‘amount’]))

  • Также убедитесь, что ваша колонка int скорее, чем varchar Это также может быть одной из причин, по которой ваш код может давать сбой.

добавлять Отчет об ошибках в начало вашего файла (ов), который поможет найти ошибки.

так же как or die(mysqli_error($con)) в mysqli_query() ,

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

  • Если это все еще не работает, опубликуйте форму HTML и схему БД, чтобы быть абсолютно уверенным.

Другие решения

Не могли бы вы попробовать переписать код следующим образом:

В любом случае, я не одобряю такой подход (передавайте POST прямо к запросу), потому что уязвим для внедрения MySQL.


Перевод ASP Классический код электронной почты на C # Код ASP.NET

У меня есть пара классических страниц ASP, которые отправляют электронное письмо через почтовый клиент Lotus Notes. Скрипт в основном захватывает файл базы данных пользователя и отправляет ему по электронной почте. Это отлично работает, но теперь мне нужно перенести все это на ASP.NET. (Использование .NET Framework 4.0, кстати.)

Проблема заключается в том, что у меня есть код (который я нашел здесь на SO ) отлично работает, когда я запускаю его на своей машине разработки, но при развертывании на сервере он не может найти базу данных пользователя. Я хочу в основном запустить эту конкретную подпрограмму как скрипт на странице, чтобы он не вызывался из кода позади, но я не могу понять, как это сделать.

Установка Notes на сервере не является вариантом, и мне не разрешено использовать SMTP для этого через наши серверы. Я могу использовать SMTP-сервер Google с учетной записью Gmail, но если трафик на нем вызывает какой-то «вы бизнес-пользователь, так что вот ваш ежемесячный счет», это тоже не вариант. Мы также не хотим, чтобы поле Gmail помечено как источник спама или что-то в этом роде, поэтому я не решался использовать Gmail в качестве SMTP. (Я готов это сделать, если указанные выше условия будут устранены, но на данный момент мы отправляем и получаем сотни писем в день через клиента Notes, и объем будет только увеличиваться.)

Таким образом, я получаю уродливый желтый экран смерти, когда нажимается кнопка отправки электронной почты. Моя первая попытка заключалась в веб-приложении ASP.NET с кодом за страницей, но я не могу заставить это работать, когда я тестирую его на сервере. Я могу использовать более старый одностраничный формат (сейчас мы все еще запускаем Windows 2K3 Server, но скоро это будет обновлено), но мне все же хотелось бы узнать, есть ли более современное решение для этого.

Как я могу сделать этот конкретный сценарий запущенным на странице на клиенте, как это делает классический ASP-скрипт? Есть ли какая-то техника, которую я пропускаю?

Вот код электронной почты; он вызывается нажатием кнопки на странице .aspx.

Переменные объявляются как переменные класса в таблице за страницей и присваиваются значения из текстовых полей From, To, Subject и Attachment (вложение — это сборщик файлов). Тело сообщения — текст в элементе управления textarea.

Как я уже сказал, все работает, если я запускаю его на своей локальной машине. С сервера, в тот момент, когда я нажимаю кнопку «Отправить», ошибка указывает, что страница не может найти базу данных для использования. (Это правда.)

Я не размещаю код .aspx, потому что это страница контента, на которой используется мастер-страница, и, возможно, это проблема, но это много кода для публикации. Если это становится важным, я буду редактировать с помощью .aspx и кода главной страницы.

EDIT: Вот существующий скрипт на странице ASP. Это работает ТОЛЬКО в IE, а в IE11 сайт должен запускаться в режиме совместимости для этого (и других скриптов) для работы. Я должен отметить, что я НЕ являюсь автором оригинальной страницы, поэтому я уже нащупываю свой путь, пытаясь понять это, и замените его (более) современными веб-приложениями, когда смогу.

Что такое Web API?

Web API – новая исполяющая среда веб-приложения, построенная на уроках и паттернах, одобренных в ASP.NET MVC. Используя простую парадигму контроллеров, Web API позволяет разработчику создавать простые Web API веб-службы с небольшим по объему кодом и конфигурацией.

Вы можете задать очень разумный вопрос: почему нам нужен новый фреймворк веб-служб? Не входит ли уже в стек разработки компании Microsoft популярная и широко совместимая технология Simple Object Access Protocol (SOAP) (простой протокол доступа к объектам)? И не существовали ли ASMX веб-службы с тех самых пор, как был выпущен ASP.NET? И не поддерживает ли уже Windows Communication Foundation (WCF) самую гибкую и расширяемую архитектуру веб-служб? Веб-службы являются повсеместными, и разработчики понимают их. Почему Web API?

Почему Web API?

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

  • Я верю в то, что существует лучший способ создания веб-служб.
  • Я верю, что веб-службы могут быть простыми и что WCF слишком сложен.
  • Я верю, что в будущем мне нужно будет поддерживать больше HTTP клиентов.
  • Я верю, что основных веб-технологий таких, как GET , POST , PUT и DELETE , достаточно.

Если вы все еще читаете, то мы продолжим обзором того, чем Web API отличается от других фреймворков. Затем мы расширим приложение «Guestbook» таким образом, чтобы поддерживались HTTP веб-службы для существующих экранных функций, с целью продемонстрировать вам, как просто использовать Web API.

Чем Web API отличается от WCF?

ASMX веб-службы на протяжении многих лет поддерживали SOAP веб-службы поверх HTTP, но они не без труда поддерживали более простые веб-службы, которым не нужно было наличие способности взаимодействовать и, таким образом, для них не нужен был SOAP. WCF занял место ASMX как самый последний и лучший способ создания веб-служб на стеке .NET. WCF службы для конечных точек HTTP похожи на следующий код.

Листинг 24-1: Для WCF служб требуется интерфейс, класс и множество атрибутов

Строка 2: Интерфейс определяет службу

Строка 4: Атрибуты определяют операции

Строка 11: Отдельный класс реализует логику службы

В рамках WCF каждая веб-служба определяется с помощью интерфейса, который определяет соглашение. Каждый метод, отмеченный OperationContract , определяет операцию в SOAP конверте WCF службы. Наконец, класс, который реализует интерфейс службы, реализует код и логику.

Запуская эту службу в Visual Studio, вы можете использовать тестовый клиент WCF для того, чтобы увидеть запрос и отклик операции GetData , как это продемонстрировано на рисунке 24-1.

Рисунок 24-1: Тестовый клиент WCF может помочь вам протестировать SOAP веб-службу с помощью WCF.

В рамках отрасли многие разработчики прилагают усилия для упрощения WCF HTTP веб-служб. Многие говорят о RESTful-стиле (Representational State Transfer – репрезентативная передача состояния), который был введен для того, чтобы обозначать использование простейших HTTP веб-служб без всяких украшательств.

ASP.NET Web API использует понятие обычного MVC контроллера и базируется на нем для того, чтобы создать для разработчика простое и продуктивное событие. Web API оставляет SOAP в истории как средство, которое используют приложения для взаимодействия. На сегодняшний момент, из-за повсеместного использования HTTP, большинство рабочих сред и систем программирования поддерживают основные принципы HTTP веб-коммуникации. В связи с тем, что вопрос совместимости решается другими способами, SOAP может быть отодвинут в сторону возрастающими технологиями наследования, а разработчики могут быстро создавать простые HTTP веб-службы (web APIs) с помощью ASP.NET Web API фреймворка.

Примите во внимание различие между кодом, который используется для создания самых простых SOAP веб-служб в листинге 24-1, и следующим кодом, который реализует те же самые функции.

Листинг 24-2: Web API обладает очень простым стилем программирования с ApiController

Строка 4: Базовый класс разрешает основную функциональность


Строка 7: Простые методы определяют операции

Первое отличие, которое вы должны были заметить, – это то, что количество строк кода в данном примере меньше, поскольку отсутствует необходимость в конкретном классе, а также в интерфейсе. Простое наследование от ApiController разрешает функциональность, необходимую для объявления метода в виде операции.

Возврат значения в рамках Web API схож с использованием WCF, но результат совершенно другой. Вы можете увидеть результат, запуская проект в Visual Studio и тестируя его с помощью веб-браузера. Помните, что одним из основополагающих убеждений, касающихся Web API, является тот факт, что веб-службы могут быть простыми. Перейдите с помощью Internet Explorer по адресу http://localhost:/api/values/43 , содержащий средства разработки (нажмите F12 ). На рисунке 24-2 продемонстрировано, что получится в результате.

Рисунок 24-2: Используются HTTP заголовки вместо SOAP конверта.

Вместо того чтобы возвращать SOAP XML , как это делается в WCF, используется более простой формат, JavaScript Object Notation (JSON). Этот формат силен в передаче единичных значений, а также структур сложных объектов. Поскольку язык JavaScript понимает этот формат, jQuery может принимать этот тип данных для использования в AJAX вызовах.

Теперь, когда вы увидели отличие WCF от Web API, давайте начнем добавлять некоторую интересную функциональность поверх приложения «Guestbook» из главы 2.

Что такое код asp notifyurlmap

84 просмотра

1 ответ

319 Репутация автора

Я использую IPN для получения уведомлений о платежах в системе MVC, над которой я работаю. После проверки определенных фрагментов я продолжаю обновлять базу данных с помощью «подписки» и «платежных реквизитов» для конкретного пользователя. Я использую «notify_url», чтобы перенаправить обратно в систему и инициировать метод PaymentNotification. Это работало правильно до тех пор, пока несколько дней назад внезапно перестало работать. Сначала я подумал, что база данных не обновляется из-за проблемы в самом методе, но потом я заметил, что метод PaymentNotification (IPN) вообще не используется.

  1. Тест со страницы разработчика PayPal, похоже, правильно перенаправил в IPN. Вызов ссылки непосредственно из браузера также влияет на метод, поэтому он кажется внешне доступным.
  2. Я использую NGROK, чтобы локальный хост выглядел так, как будто он работает с живого домена. Он не работает ни с HTTP, ни с HTTPS. Я также тестирую в размещенной среде, с конфигурацией песочницы, в домене HTTP, и она тоже не работает.
  3. Я отлаживаю скрытые значения в форме проверки, прямо перед перенаправлением на Paypal, и все значения, включая: notify_url, правильно заполнены. Это работало, но внезапно прекратилось.
  • Что может быть причиной? Почему это работает на всех этапах разработки, но вдруг перестает работать? Конечно, я не могу позволить, чтобы это перестало работать в живом окружении!
  • Возможно, это проблема среды песочницы? Безопасен ли IPN для живых систем? Может кто-то говорить из опыта?
  • Или, может быть, есть лучший вариант, на который я могу посмотреть?
  • Я прочитал эту статью , в которой обсуждается проверка / активация адреса электронной почты учетной записи песочницы. Кто-нибудь может указать, что это может быть? И могли ли те же адреса электронной почты работать, но внезапно останавливаться? Они должны быть реальными электронными письмами? Поскольку те, которые я использовал (и также работал), не привязаны к реальным счетам PayPal.

Автор: Jurgen CuschieriИсточник Размещён: 12.03.2020 08:33

Ответы (1)

плюса

319 Репутация автора

Как указано в комментарии, даже для тестирования Paypal в режиме «песочницы», начиная с сентября 2020 года, TLS 1.2 требуется для обработки PayPal IPN. В моем случае, изменив рабочую и личную электронную почту для тестирования в Sandbox на реальные / действительные, я решил проблему с локальным тестированием с использованием NGROK в качестве безопасного туннеля к локальному хосту. Более того, это не должно быть проблемой, когда я на самом деле использую сертификат HTTPS.

PayPal не перенаправляется на notify_url СПИ в системе MVC

Я использую IPN, чтобы получать уведомления о компенсации в системе MVC, я работаю. После проверки некоторых биты и куски, я продолжу обновлять базу данных с «подписки» и «платежные реквизиты» для конкретного пользователя. Я использую «notify_url» перенаправить обратно в систему и инициировать метод PaymentNotification. Это было правильно работать вплоть до несколько дней назад, когда он вдруг просто перестал работать. Сначала я думал, что база данных не обновляется из-за проблемы внутри самого метода, но потом я заметил, что метод PaymentNotification (IPN) не быть пораженным на всех.

  1. Тест от страницы PAYPAL разработчика казался правильно перенаправлять в СПИ. Вызов по ссылке непосредственно из браузера попадет метод также, так что, кажется, доступны извне.
  2. Я использую NGROK сделать локальный вид, как он работает от живого домена. Она не работает ни с HTTP или HTTPS. Я также тестирование на организованную среду, с конфигурацией песочницы, в домене HTTP, и он не работает либо.
  3. Я отладки скрытых значений в форме проверки, перед перенаправлением на Paypal и все значения, в том числе: notify_url правильно заполнены. Это работает, но вдруг остановился.
  • Что может быть причиной? Почему она будет работать на протяжении всей стадии разработки, но вдруг перестанет работать? Конечно, я не могу позволить, чтобы это прекратить работать на живой среде!
  • Это, возможно, проблема с окружающей средой песочницы? Является ли IPN безопасным для живых систем? Может кто-то говорить с опытом?
  • Или есть, возможно, лучший вариант я могу смотреть в?
  • Я прочитал эту статью , в которой обсуждается проверочной / активирующий адрес электронной почты песочница счета. Можно ли указать , что это может быть? И используются ли одни и те же адреса электронной почты могла бы работать , но вдруг остановились? У них должны быть реальные письма? Как те , которые я использовал (а также рабочие) не привязаны к реальным счетам PayPal.

Полное руководство по работе со структурированными данными

26.05.2020 Время прочтения: 30 минут

Одно из самых сокровенных желаний владельцев сайтов и SEO-специалистов — это выделить свой сайт в результате поиска, чтобы он отличался от конкурентов, и пользователи чаще переходили на него. Самый действенный метод достижения этой цели – работа со структурированными данными. В этой статье мы постараемся разобраться, что же такое структурированные данные и как их можно внедрить на свой сайт.

С чего все началось?

Единая схема форматов семантической разметки сайтов, которую мы сейчас все знаем и применяем, появилась в 2011 году при поддержке таких гигантов, как «Google», «Yahoo!» и «Microsoft» (позже присоединился четвертый игрок – «Яндекс»). До этого разметка данных существовала в разных форматах и не было единой структуры. К примеру, у «Yahoo!» был сервис под названием «SearchMonkey», который уже в 2008 г. позволял размечать данные на странице и формировать уникальные сниппеты в поисковой выдаче своего поисковика.

Перед корпорациями стояла глобальная цель – разработать общий формат структурированных данных, которые бы улучшали отображение сайтов в поисковых машинах и повышали качество поиска. Поставленных задач инициаторы добились, в результате чего на свет появился словарь schema.org, который объединяет в себе огромное количество правил для микроразметки данных на сайте.

Что такое структурированные данные?

Структурированные данные – это информация, которая представлена в единой и корректной форме с соблюдением определенного комплекса правил.


На сегодняшний день в SEO есть два распространенных типа структурированных данных это:

  • Свойства, которые указываются непосредственно в HTML или с помощью инструментов Google и описывают такую информацию, как цена, адрес, телефон, email и т.д.
  • Описывают тип контента на странице. Например, разметка страниц в виде статей, товарных карточек, событий, видео и т.д.

У структурированных данных есть также второе общепринятое название «Микроразметка».

Разметка данных осуществляеться непосредственно в самом HTML-коде страницы по описанным правилам в словаре schema.org. Также этот процесс может происходить опосредованно, с помощью «Google Маркера» или сервиса «Товары и цены» от Яндекса через панели веб-мастеров.

Зачем нужны структурированные данные на сайте?

Независимо от того, коммерческий у вас сайт или сайт компании, если на нем нет разметки структурированных данных (микроразметки), то следует как можно быстрее её внедрить.

В первую очередь это нужно для того, чтобы поисковые роботы быстрее и качественнее обрабатывали информацию на вашем сайте, вследствие чего формировали уникальный сниппет в поисковых машинах с расширенной информацией.

Изображение 1. Сниппет в поисковой выдаче Яндекса интернет-магазина ТВОЕ по запросу «купить белую мужскую футболку». В данном случае размечена цена в формате «от руб.».

Расширенное описание делает ваш сайт заметным и отличает от других участников поиска, что вследствие улучшает CTR. Это вторая причина для внедрения семантической разметки. Как правило, у страниц со структурированными данными показатель кликабельности выше на 30%, чем у тех страниц, где микроразметки нет вовсе. Однако не стоит забывать, что все зависит от ниши, в которой продвигается тот или иной сайт. Если абсолютно все ваши конкуренты используют микроразметку, то отсутствие её на вашем сайте будет очевидным минусом. А если в вашей нише большинство конкурентов не используют этот инструмент, то внедрение структурированных данных на сайте пойдет только на пользу.

Изображение 2. Выдача в Google по запросу «купить айфон 7». Лишь у 2 из 10 сайтов размечены страницы (первый сайт не влез на скриншот, но там был Яндекс.Маркет).

Что нужно размечать?

Чаще всего с помощью микроразметки schema.org размечается следующие типы информации на сайте:

В зависимости от типа страниц размечается такая информация, как:

  • Цена;
  • Производитель;
  • Автор статьи;
  • Описание;
  • Дата публикации;
  • Адрес;
  • Телефон;
  • Список;
  • Жанр фильма;
  • Музыкальный альбом;
  • Рейтинг и т.д.

Какие есть виды словарей микроразметок?

В настоящее время лидером в описании структурированных данных по праву считается schema.org, однако это далеко не единственный словарь микроразметки. Существуют еще такие методы разметки, как:

Расписывать принципы работы с каждым словарем мы не будем, разберем подробнее лишь три из них: Json-ld, Opne Graph и schema.org.

Schema.org

Начнем с популярного словаря по микроразметке schema.org. Результат коллаборации Google, Yahoo!, Microsoft и Яндекса активно развивается и регулярно обновляется и по сей день. На момент создания статьи в словаре имеются описания для 589 типов документов, 860 свойств объектов и 114 специфичных значений. Полный список всех свойств перечислен в виде разветвленной иерархии на этой странице.

Основной высший тип сущности в словаре schema.org — Thing, который, в свою очередь, делится на несколько других подтипов. Некоторые из них:

  • CreativeWork – общий набор правил для описания творческой деятельности: статьи, книги, фильмы, фотографии, программное обеспечение, и т.д.;
  • Event – набор правил для событий, которые произошли или произойдут в определенный период времени: встречи, концерты, выставки и т.д.;
  • Intangible — сервисный класс, который включает в себя несколько нематериальных вещей, таких как размеры, рейтинги, описания рабочих вакансий, услуг и т.д.;
  • Organization – набор правил для разметки организаций, полный список разных видов бизнеса перечислен на странице localBusiness. Также можно посмотреть этот список в справке Яндекса https://yandex.ru/support/webmaster/supported-schemas/address-organization.html;
  • Person – сущность используется для описания живых, умерших, вымышленных личностей или персонажей;
  • Place – набор правил для чего-то, что имеет фиксированное физическое положение (здание, парк, памятник и т.д.);
  • Product – это все, что создается для продажи. Например, пара обуви, билет или автомобиль.

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

У большинства тегов в словаре есть варианты применения в виде примерного куска HTML-кода или JSON-LD скрипта. Ниже мы рассмотрим примеры разметок страницы со статьей (article), товаром (product) и организацией (organization).

Шаблон микроразметки статьи с помощью schema.org

Чаще всего размечаются такие микроданные как URL, datePublished, dateModified, headline, image, author, publisher и др. Рассмотрим на конкретном примере:

Подобной схемы придерживаются большинство размеченных статей. Стоит обратить внимание, что в данном примере часть тегов указываются в разделе (мета-описание и ссылка на автора в g+), а остальная часть прописывается в теле HTML-документа. Некоторые теги использовать не обязательно, к примеру, статья отлично будет себя чувствовать и без разметки тегами articleBody или publisher, но тогда вряд ли пройдет проверку на валидность в инструментах Яндекса или Google.

Изображение 3. Пример страницы в выдаче с микроразметкой статьи в Google. Рядом со статьей отображается дата публикации.

Изображение 4. Пример страницы в выдаче по тому же запросу, что и на изображении 3, только в Яндексе. Дата отображается справа, сверху указывается дата публикации или создания, а ниже дата изменения.

Шаблон микроразметки товарной карточки с помощью schema.org

Следующий вид микроразметки, который мы рассмотрим, будет product или, другими словами, семантическая разметка товарной карточки.

Уделяйте особое внимание формату цен, так как большинство ошибок в микроразметке товарных карточек кроется именно там. Текстом мы можем писать любую стоимость в любом формате, а непосредственно в самом теге price цену указываем строго в денежном формате, иначе поисковики проигнорируют эту строку.


Изображение 5. Пример из выдачи Google с указанием цены в формате «ОТ» и «ДО».

Шаблон микроразметки организации с помощью schema.org

Последний шаблон, который мы рассмотрим, – это разметка организации (organization). Обычно эту разметку применяют для структурирования информации на странице контактов.

У schema.org весьма объемный словарь. Из-за этого во время работы с ним могут возникать трудности, но далеко не все теги в разметке обязательны и от большинства можно отказаться. В приведенных примерах я указал самые основные теги, которые могут использоваться во время работы с разметкой schema.org, однако их может быть намного больше.

У Google есть специальный инструмент для разметки страниц по словарю schema.org. С его помощью создавать разметку страниц намного проще.

Изображение 6. Пример из Яндекса. Дополнительная информация об организации отображается под описанием страницы и может быть внедрена как вручную, с помощью разметки, так и с помощью сервиса Яндекс.Справочник.

Плюсы и минусы микроразметки schema.org

  • Большой словарь, который постоянно обновляется;
  • Поддерживается всеми популярными поисковыми системами;
  • Код не скрыт скриптами и целиком находится в контенте страницы;
  • Улучшает отображение сниппетов в поисковой выдаче;
  • Можно найти разметку практически для каждого сайта;
  • Существуют плагины для автоматизации формирования микроразметки;
  • Активно развивается и дополняется.
  • Большое количество схем микроразметки может отпугнуть неподготовленного пользователя;
  • Нужны начальные знания верстки и изменения кода страниц;
  • Усложняет HTML-код, что замедляет разработку сайта;
  • Вся официальная справочная документация на английском языке;
  • Не для всех свойств есть примеры использования на официальном сайте.

Инструменты для работы с микроразметкой schema.org

В работе с микроразметкой schema.org пригодятся такие сервисы, как:

  • Инструмент для проверки структурированных данных от Google;
  • Помощник по микроразметке страниц по словарю schema.org от Google. По итогу получаем HTML-код страницы с уже внедренной микроразметкой;
  • Проверка семантической разметки от Яндекса;
  • Официальный сайт разметки;
  • Неофициальный перевод сайта schema.org на русский язык;
  • «All In One Schema.org Rich Snippets», «Wprichsnippets.com», «Schema App Structured Data» — плагины для WordPress, которые формируют семантическую разметку schema.org автоматически;
  • Notepad++ — или любой другой текстовый редактор.
  • Open Graph

    Данный протокол разработал «Facebook» для улучшения отображения сниппетов ссылок с внешних сайтов в социальных сетях. Это, наверное, один из самых простых и небольших словарей микроразметки. Начать внедрение разметки можно с четырех основных свойств:

    • og:title — заголовок страницы.
    • og:type — тип объекта, например, «music.album»(альбом). В зависимости от типа поддерживаются и другие свойства. Все возможные характеристики тега type перечислены на официальном сайте.
    • og:image — URL изображения.
    • og:url — канонический URL объекта.

    Все теги разметки «Open Graph» прописываются в контейнере .

    Помимо основных свойств также можно указать дополнительные, которые улучшат отображение ссылок в социальных сетях:

    • og:audio – URL на аудиофайл, если при открытии страницы воспроизводится музыка.
    • og:determiner — слово, которое появляется перед названием этого объекта в предложении. Тип enum (a, an, the, «», auto). Если выбрано auto, потребитель данных должен выбирать между «a» или «an». По умолчанию — » » (пусто). Тег наиболее актуален для англоязычного сегмента в связи с использованием различных артиклей вида «a», «the», «an» и т.д.
    • og:description – описание страницы, разрешенное количество символов от 160 до 295 знаков.
    • og:locale – язык и страна. Формат отображения language_TERRITORY, по умолчанию стоит en_US. Для русскоязычного сегмента прописывается тег ru_RU.
    • og:locale:alternate – альтернативный язык или страна.
    • og:site_name – название сайта.
    • og:v >Ниже представлен пример HTML-кода со всеми возможными свойствами, на практике часть из указанных тегов не указывается и хватает стандартных четырех свойств:

    Изображение 7. Вид ссылки на Facebook с микроразметкой Open Graph.

    Плюсы и минусы микроразметки Open Graph

    • Легкий в освоении словарь;
    • Улучшает отображение ссылок во всех популярных социальных сетях;
    • Поддерживается многими социальными сетями;
    • Разметка совместима с приложениями и играми на платформе социальных сетей;
    • Есть справочная документация на русском языке;
    • Существуют плагины для автоматизации оформления данной разметки;
    • Поддерживается поисковыми системами.
    • Ограниченный функционал;
    • Работает только в социальных сетях.


    Инструменты для работы со словарем Open Graph

    Для работы с микроразметкой «Open Graph» рекомендуются следующие сервисы:

    • Официальный сайт Open Graph на русском языке с примерами разметок;
    • Отладчик перепостов от Facebook показывает, какие данные указаны в Open Graph формате на web-странице;
    • Плагин Open Graph для WordPress;
    • Плагин Open Graph для Joomla;
    • Notepad++- или любой другой текстовый редактор.

    JSON-LD

    Последний вид разметки и структурирования данных, который мы рассмотрим, – JSON-LD. Расшифровывается это страшное название как «JavaScript Object Notation Linked Data». За разработку формата ответственен «Консорциум Всемирной Паутины» или, другими словами, «W3C». Данный формат выполняет все ту же функцию, что и schema.org, но немного другим способом: он структурирует данные помощью JavaScript, что в несколько раз облегчает работу.

    Один из плюсов этого формата в том, что для описания данных используется словарь schema.org. Таким образом, с помощью скриптов JSON-LD мы можем описать любой вид сущностей и улучшить отображение своего сайта в поисковой выдаче, затратив на это минимальное количество времени. Причем сделать это можно без внедрения HTML-тегов в тело страницы, нужно лишь указать .

    Для наглядности сравним разметку schema.org и JSON-LD:

    Шаблон разметки статьи с помощью JSON-LD

    Пример разметки с помощью JSON-LD я взял на основе микроразметки статьи в schema.org из этого же материала выше. Использованы все те же свойства.

    Возникает закономерный вопрос: что же лучше schema.org или JSON-LD? Тут нельзя дать однозначный ответ. Работать с микроразметкой в формате JSON-LD проще и приятнее, чем все с тем же словарем schema.org в HTML-формате, но и у него есть свои минусы. Например, поисковик Google советуют использовать эту технологию для разметки своих страниц. А вот с Яндексом есть проблемы: данный вид разметки пока не отображается в результатах поиска из-за скриптов, хотя страницы с разметкой JSON-LD и проходят проверку на валидность.

    Поисковая система Яндекс не показывает в поисковой выдаче информацию, размеченную с помощью мета-языка JSON-LD.

    Изображение 8. Письмо из техподдержки Яндекса по поводу планов насчет JSON-LD. За скриншот спасибо пользователю Oleh Holovkin.

    В данном случае нужно правильно расставить приоритеты. Если нужны расширенные сниппеты в Яндексе и Google, то используем старую добрую разметку schema.org; если мы ориентируемся на Запад и наша основная поисковая система только Google, то разметку JSON-LD нужно брать и внедрять без промедлений.

    Плюсы и минусы микроразметки JSON-LD

    • Формат несколько проще по сравнению с schema.org;
    • Рекомендуется Google;
    • Для движка WordPress есть качественные плагины для работы;
    • Благодаря JavaScript разметка «невидима» для рядового пользователя в отличие от HTML;
    • Скрипт помещается только в контейнер без внедрения дополнительных строчек кода в тело сайта;
    • Проходит валидацию в официальных инструментах проверки Яндекса и Google.
    • Микроразметка основана на JavaScript и не во всех поисковых системах отображается в поисковой выдаче (в том числе и Яндексе);
    • Помимо знаний HTML нужны также знания JavaScript;

    Инструменты для работы с микроразметкой JSON-LD

    Набор инструментов для работы с микроразметкой JSON-LD:

    • Инструмент для проверки структурированных данных от Google;
    • Проверка семантической разметки от Яндекса;
    • Плагин для WordPress, который поддерживает все типы микроразметки;
    • Еще один плагин для WordPress, который может указать автора статьи и издательство, подойдет для периодичных изданий и блогов;
    • Модуль JSON-LD для движка Drupal;
    • Документация по JSON-LD для платформы GIT;
    • Официальная документация JSON+LD от W3C;
    • Notepad++ — или любой другой текстовый редактор. #Google

    Перевод ASP Классический код электронной почты на C # Код ASP.NET

    У меня есть пара классических страниц ASP, которые отправляют электронное письмо через почтовый клиент Lotus Notes. Скрипт в основном захватывает файл базы данных пользователя и отправляет ему по электронной почте. Это отлично работает, но теперь мне нужно перенести все это на ASP.NET. (Использование .NET Framework 4.0, кстати.)

    Проблема заключается в том, что у меня есть код (который я нашел здесь на SO ) отлично работает, когда я запускаю его на своей машине разработки, но при развертывании на сервере он не может найти базу данных пользователя. Я хочу в основном запустить эту конкретную подпрограмму как скрипт на странице, чтобы он не вызывался из кода позади, но я не могу понять, как это сделать.

    Установка Notes на сервере не является вариантом, и мне не разрешено использовать SMTP для этого через наши серверы. Я могу использовать SMTP-сервер Google с учетной записью Gmail, но если трафик на нем вызывает какой-то «вы бизнес-пользователь, так что вот ваш ежемесячный счет», это тоже не вариант. Мы также не хотим, чтобы поле Gmail помечено как источник спама или что-то в этом роде, поэтому я не решался использовать Gmail в качестве SMTP. (Я готов это сделать, если указанные выше условия будут устранены, но на данный момент мы отправляем и получаем сотни писем в день через клиента Notes, и объем будет только увеличиваться.)

    Таким образом, я получаю уродливый желтый экран смерти, когда нажимается кнопка отправки электронной почты. Моя первая попытка заключалась в веб-приложении ASP.NET с кодом за страницей, но я не могу заставить это работать, когда я тестирую его на сервере. Я могу использовать более старый одностраничный формат (сейчас мы все еще запускаем Windows 2K3 Server, но скоро это будет обновлено), но мне все же хотелось бы узнать, есть ли более современное решение для этого.

    Как я могу сделать этот конкретный сценарий запущенным на странице на клиенте, как это делает классический ASP-скрипт? Есть ли какая-то техника, которую я пропускаю?

    Вот код электронной почты; он вызывается нажатием кнопки на странице .aspx.

    Переменные объявляются как переменные класса в таблице за страницей и присваиваются значения из текстовых полей From, To, Subject и Attachment (вложение — это сборщик файлов). Тело сообщения — текст в элементе управления textarea.

    Как я уже сказал, все работает, если я запускаю его на своей локальной машине. С сервера, в тот момент, когда я нажимаю кнопку «Отправить», ошибка указывает, что страница не может найти базу данных для использования. (Это правда.)

    Я не размещаю код .aspx, потому что это страница контента, на которой используется мастер-страница, и, возможно, это проблема, но это много кода для публикации. Если это становится важным, я буду редактировать с помощью .aspx и кода главной страницы.

    EDIT: Вот существующий скрипт на странице ASP. Это работает ТОЛЬКО в IE, а в IE11 сайт должен запускаться в режиме совместимости для этого (и других скриптов) для работы. Я должен отметить, что я НЕ являюсь автором оригинальной страницы, поэтому я уже нащупываю свой путь, пытаясь понять это, и замените его (более) современными веб-приложениями, когда смогу.

    Илон Маск рекомендует:  Vrml'97 источники освещения
    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL