Эта страница на MSDN объясняет WCF Обязательная безопасность.
http://msdn.microsoft.com/en-us/library/ms729700.aspx
класс BasicHttpBinding, прежде всего, используется для взаимодействия с существующими веб-сервисами, и многие из тех сервисов размещаются Internet Information Services (IIS). Следовательно, транспортная безопасность для этой привязки разработана для бесшовного взаимодействия с сайтами IIS. Это сделано путем установки режима безопасности для Переноса и затем установки клиентского учетного типа. Учетные значения типа соответствуют механизмам безопасности каталога IIS. Следующий код показывает устанавливаемый режим и учетный набор типа на Windows. Можно использовать эту конфигурацию, когда оба клиента и сервера находятся на том же домене Windows.
C#
BasicHttpBinding b = new BasicHttpBinding(); b.Security.Mode = BasicHttpSecurityMode.Transport ; b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
Или, в конфигурации:
Для включения ssl, без входа в систему, устанавливают clientCredentialType ни на "Один".
Опции для режима безопасности:
Ни один, Транспорт, сообщение, TransportWithMessageCredential и TransportCredentialOnly
можно найти больше деталей в: http://msdn.microsoft.com/en-us/library/system.servicemodel.basichttpsecuritymode.aspx
Следующий минимальный сценарий, похоже, работает:
#!/usr/bin/perl
package TestClass;
use strict;
use warnings;
sub new {
my $class = shift;
return unless <STDIN> eq "1\n";
bless {} => $class;
}
package main;
use strict;
use warnings;
use Test::More tests => 1;
{
open my $stdin, '<', \ "1\n"
or die "Cannot open STDIN to read from string: $!";
local *STDIN = $stdin;
my $test = TestClass->new;
isa_ok( $test, 'TestClass');
}
Вывод:
C:\Temp> t 1..1 ok 1 - The object isa TestClass
Если программа читает из STDIN
, тогда просто установите STDIN
как открытый дескриптор файла, которым вы хотите, чтобы он был:
#!perl
use strict;
use warnings;
use Test::More;
*STDIN = *DATA;
my @a = <STDIN>;
is_deeply \@a, ["foo\n", "bar\n", "baz\n"], "can read from the DATA section";
my $fakefile = "1\n2\n3\n";
open my $fh, "<", \$fakefile
or die "could not open fake file: $!";
*STDIN = $fh;
my @b = <STDIN>;
is_deeply \@b, ["1\n", "2\n", "3\n"], "can read from a fake file";
done_testing;
__DATA__;
foo
bar
baz
Возможно, вы захотите чтобы узнать больше о typeglobs в perldoc perldata
и подробнее о превращении строк в поддельные файлы в документации для open
(ищите «Начиная с версии v5.8.0, perl имеет по умолчанию построено с использованием PerlIO. ") в perldoc perlfunc
.