WCF basicHttpBinding设置在Windows服务中托管的凭据

时间:2011-11-14 12:22:11

标签: c# wcf http-basic-authentication

我可以在哪里设置使用basicHttpBinding

的服务的用户名和密码
<binding name="proxioBasicHttpBinding"
                 closeTimeout="05:00:00" 
                 openTimeout="05:00:00"
                 receiveTimeout="05:00:00" 
                 maxBufferSize="2147483647" 
                 maxReceivedMessageSize="2147483647"
                 messageEncoding="Mtom" 
                 transferMode="Streamed" >
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Digest" proxyCredentialType="None"
              realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>

如果服务是在Windows服务下托管的?

2 个答案:

答案 0 :(得分:4)

您是否尝试将Windows凭据传递给您的服务?或提供回应?我不是100%清楚你想要完成什么。

如果我明白你在做什么,你就无法通过配置来做到这一点。 你可以用这样的代码来实现它

client.ClientCredentials.UserName.UserName = UserId;
client.ClientCredentials.UserName.Password = Password;

但是,如果您尝试在配置文件中配置Windows凭据。首先不推荐它,但这里有几个链接。

How to specify Windows credentials in WCF client configuration file

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

这描述了多个场景的安全性。

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

关于wcf安全性的另一个有用链接 http://wcfsecurityguide.codeplex.com/releases/view/15892

如果您描述自己的情况并澄清您需要完成的工作,我认为您会收到更多回复。

但是,如果这有助于通过各种方式授予我代表:)

答案 1 :(得分:0)

为什么要在配置文件中配置用户ID和密码?更改运行服务的用户会更安全。可以通过右键单击服务,选择“属性”,然后在“登录”选项卡上设置帐户来完成此操作。