我有使用Windows身份验证的WCF网络服务。
结合
<bindings>
<netTcpBinding>
<binding name="CommonWindowsBinding" maxReceivedMessageSize="40000000" >
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
端点
<endpoint address="Windows"
binding="netTcpBinding"
bindingConfiguration="CommonWindowsBinding"
name="MyNameSpace.Contracts.ISimplePluginServiceWindows"
contract="MyNameSpace.Contracts.ISimplePluginService">
<identity>
<dns value="WCfServer" />
</identity>
</endpoint>
我想将其他信息传递给服务以进行此类身份验证(我通过检查MS SQL Server的用户和登录来检查身份验证 - 我需要传递mssql服务器名称和数据库名称)。所以,我必须将一些自定义数据传递给validator =&gt;我必须为Windows身份验证制作自定义验证程序。我该怎么做?我找不到任何例子。
对于UserName身份验证,我可以使用CustomUserNameValidator(通过登录传递服务器地址和数据库名称)继承UserNamePasswordValidator。
答案 0 :(得分:1)
Windows身份验证是Windows(E.G. Kerberos)。如果您想拥有自己的身份验证,请使用密码,但我认为它不会让您传递其他信息。你真的想将服务器地址和数据库名称传递给服务器吗?
答案 1 :(得分:0)
我意识到,这是一种常见的错误做法。
我可以使用委派 - http://msdn.microsoft.com/en-en/library/ms730088.aspx
如果传递其他数据(例如服务器名称和数据库名称)是必要的,则应使用服务合同中的特殊方法执行此类操作。