WCF: Как получить Объект привязки от конфигурации

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

Например, над моей формой (которая загружает файл) у меня есть follwing html:

<form id="upload_form" type="multipart/form-data" data-csrf="{{csrfToken}}" method="post" action="/data_assets">
  <input id="excell_upload" type="file" style="visible:hidden" name="data_assets"/>
</form>

И при изменении файла я запускаю такую ​​загрузку:

 $('#excell_upload').on('change',function(event){

      event.preventDefault();
      var formData = new FormData($("#upload_form")[0]);

      $.ajax({
        'type':$("#upload_form").attr('method'),
        'data': formData,
        'url': $("#upload_form").attr('action'),
        'processData': false,
        'contentType': false,
        'mimeType': 'multipart/form-data',
        'headers': {"X-CSRF-Token": $("#upload_form").attr('data-csrf') },
        'beforeSend': function (x) {
           if (x && x.overrideMimeType) {
               x.overrideMimeType("multipart/form-data");
          }
          $('#trigger_upload').addClass('disabled');
        },
        'success':function(data){
          $('#upload_form').attr('data-csrf',data.csrfToken)
        },
        'fail':function(){

        },
        'complete':function(){
          $('#trigger_upload').removeClass('disabled');
        }
      });
    });

Как вы заметили, я получаю новый токен csrf, чтобы иметь возможность повторно использовать мою форму для новых отправлений. Я регенерирую токен CSRF следующим образом:

app.post('/data_assets',function(req,res,next){
  res.json({'csrfToken':req.csrfToken()});
});
16
задан bh213 10 December 2008 в 10:03
поделиться

4 ответа

Можно инстанцировать привязки, дающей обязательное имя конфигурации от App.config/Web.config.

http://msdn.microsoft.com/en-us/library/ms575163.aspx

Инициализирует новый экземпляр класса WSHttpBinding с привязкой, определенной ее именем конфигурации.

следующий пример показывает, как инициализировать новый экземпляр класса WSHttpBinding с аргументом строки.

// Set the IssuerBinding to a WSHttpBinding loaded from config
b.Security.Message.IssuerBinding = new WSHttpBinding("Issuer");
6
ответ дан 30 November 2019 в 17:05
поделиться

Выезд этот сообщение в блоге от Mark Gabarra, это показывает, как перечислить настроенную привязку

7
ответ дан 30 November 2019 в 17:05
поделиться

Одна развязная опция могла бы состоять в том, чтобы создать экземпляр с конструктором по умолчанию, использовать в качестве шаблона:

Binding defaultBinding;
using(TestServiceClient client = new TestServiceClient()) {
    defaultBinding = client.Endpoint.Binding;
}

Тогда убирают это и снова используют его. Какая-либо справка?

6
ответ дан 30 November 2019 в 17:05
поделиться

Если вы не знаете тип привязки до времени выполнения, вы можете использовать следующее:

return (Binding)Activator.CreateInstance(bindingType, endpointConfigName);

Где bindingType для типа привязки, а endpointConfigName - это имя, указанное в файле конфигурации.

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

7
ответ дан 30 November 2019 в 17:05
поделиться
Другие вопросы по тегам:

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