WCF身份验证密码怎么放到web.config里面?

 我来答
周启萌
2016-08-08 · TA获得超过1152个赞
知道大有可为答主
回答量:1441
采纳率:86%
帮助的人:1715万
展开全部
创建 WSHttpBinding 类的一个实例。
将 WSHttpSecurity 类的 Mode 属性设置为 Message。可以通过 WSHttpBinding 类的 Security 属性来访问 WSHttpSecurity 对象。
将 MessageSecurityOverHttp 类的 ClientCredentialType 属性设置为 UserName。可以通过 WSHttpSecurity 类的 Message 属性来访问MessageSecurityOverHttp,如下面的代码所示。
C#
VB
WSHttpBinding myBinding = new WSHttpBinding();
myBinding.Security.Mode = SecurityMode.Message;
myBinding.Security.Message.ClientCredentialType =
MessageCredentialType.UserName;

配置服务以便在配置中使用用户名和密码进行身份验证
将 wsHttpBinding Element添加到 Web.config 文件的 <bindings> 节。
将 binding 元素添加到 wsHttpBinding 元素,并根据需要将 configurationName 属性设置为适当的值。
向绑定添加一个 <security> for <wsHttpBinding> 元素,并将 mode 属性设置为 "Message"。
向 security 绑定添加一个 <message> for <security> for <wsHttpBinding>,并将 clientCredentialType 属性设置为 "UserName",如下面的代码所示:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="Binding1">
<security mode="Message">
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
</system.serviceModel>

创建一个使用新绑定的服务,如下面的代码所示。
<services>
<service
type="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- Use the base address provided by the host. -->
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
</service>
</services>

客户端代码
在代码中获取用户的用户名和密码
若要获取用户的用户名和密码,您必须使用用户界面。下面的代码使用命令提示来查询用户的用户名和密码。用星号替换用户输入。
C#
VB
public static string Returnpassword()
{
Console.WriteLine("Provide a valid machine or domain account. [domain\\user]");
Console.WriteLine(" Enter username:");
string username = Console.ReadLine();
Console.WriteLine(" Enter password:");
string password = "";
ConsoleKeyInfo info = Console.ReadKey(true);
while (info.Key != ConsoleKey.Enter)
{
if (info.Key != ConsoleKey.Backspace)
{
password += info.KeyChar;
info = Console.ReadKey(true);
}
else if (info.Key == ConsoleKey.Backspace)
{
if (!string.IsNullOrEmpty(password))
{
password = password.Substring
(0, password.Length - 1);
}
info = Console.ReadKey(true);
}
}
for (int i = 0; i < password.Length; i++)
Console.Write("*");
return password;
}

创建客户端类的实例,如下面的代码所示。
C#
VB
CalculatorClient client = new CalculatorClient("default");

将 UserNamePasswordClientCredential 类的 Password 属性设置为密码。可以从客户端对象访问此类,如下面的代码所示。
C#
VB
client.ClientCredentials.UserName.Password = ReturnPassword();

将 UserName 属性设置为用户的用户名。
C#
VB
client.ClientCredentials.UserName.UserName = ReturnUsername();

调用服务的方法。
C#
VB
double value1 = client.Add(100, 15.99);

完成后,请调用客户端的 Close 方法。
C#
VB
client.Close();
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式