私はWFサービスを保護するだけです。これに関するリソースが見つかりません。どうやってするの?WorkflowService認証を設定するにはどうすればよいですか?
はすでに試してみました:
class Program
{
static void Main(string[] args)
{
using (WorkflowServiceHost host = new WorkflowServiceHost(new Workflow1(), new Uri("http://localhost/Test")))
{
host.Credentials.UserNameAuthentication.UserNamePasswordValidationMode = System.ServiceModel.Security.UserNamePasswordValidationMode.Custom;
host.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = new Test();
host.Open();
Console.Write("ready");
Console.ReadLine();
}
}
}
public class Test : UserNamePasswordValidator
{
public Test()
{
Console.Write("hit");
}
public override void Validate(string userName, string password)
{
Console.Write("never hit");
}
}
と設定
<bindings>
<wsHttpBinding>
<binding>
<security mode="Message">
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
<!--<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="myAssembly.Test, myAssembly" />
</serviceCredentials>-->
</behavior>
</serviceBehaviors>
- それらが動的に が作成されるため、固定の名前のエンドポイントを作成できません
UPDATE - I以下の設定を試してみました働いていたが、私はよりきめ細かな方法は、限り、これはちょうどWCFは、あなたがWCFで何かできることは、ここに動作するはずされたメッセージング一環として、各サービスの利用
<protocolMapping>
<add scheme="http" binding="wsHttpBinding"/>
</protocolMapping>
unamed WSHttpBindingを追加し、サービスモデルで、次のセクションでは、あまりにも動作するはずですが、デフォルトの設定のために私の例のセクションでは動作しませんでした。 –
WCFでのやり方は、サービスと同じ名前の設定ファイルにエンドポイントを作成し、バインド(とセキュリティ)を設定することです。しかし、それはワークフローサービスに名前を付けるユーザーだからできません。私が必要とするのは、特定のサービスが使用するバインディングを指定することだと思います。 –
すべてのワークフローサービスで同じ設定が必要な場合は、名前の付いていないバインディングを作成できます。すべてのサービスでデフォルトとして使用されます。また、WorkflowServiceHostを使用してバインディング/エンドポイントを構成することもできます。 – Maurice