Csharp/C#教程:在App.config中设置WCF ClientCredentials分享


在App.config中设置WCF ClientCredentials

是否可以在App.config中为WCF设置clientcredentials?

我想避免这样做:

Using svc As New MyServiceClient svc.ClientCredentials.UserName.UserName = "login" svc.ClientCredentials.UserName.Password = "pw" ... End Using 

相反,登录名和密码应该是配置的一部分。

据我所知,由于它会创建安全漏洞,因此无法使用serviceModel配置部分。 但您可以为这些值创建常规appSettings并在代码中使用它们:

 svc.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings("...") 

我会建议不要使用这种方法,除非你加密配置文件。

扩展Ladislav Mrnka的答案,您可能会发现此实现很有用:

 public class UserNameClientCredentials : ClientCredentialsElement { private ConfigurationPropertyCollection properties; public override Type BehaviorType { get { return typeof (ClientCredentials); } } ///  /// Username (required) ///  public string UserName { get { return (string) base["userName"]; } set { base["userName"] = value; } } ///  /// Password (optional) ///  public string Password { get { return (string) base["password"]; } set { base["password"] = value; } } protected override ConfigurationPropertyCollection Properties { get { if (properties == null) { ConfigurationPropertyCollection baseProps = base.Properties; baseProps.Add(new ConfigurationProperty( "userName", typeof (String), null, null, new StringValidator(1), ConfigurationPropertyOptions.IsRequired)); baseProps.Add(new ConfigurationProperty( "password", typeof (String), "")); properties = baseProps; } return properties; } } protected override object CreateBehavior() { var creds = (ClientCredentials) base.CreateBehavior(); creds.UserName.UserName = UserName; if (Password != null) creds.UserName.Password = Password; ApplyConfiguration(creds); return creds; } } 

之后,您需要使用类似的东西注册此自定义实现

       ... 

这就是我为了让新的auth工作所做的

进一步扩展Mormegil的答案,这就是如何使用customBehavior实现。

 public class UserNameClientCredentialsElement : ClientCredentialsElement { // class renamed only to follow the configuration pattern ... // using Mormegil's implementation } 

之后你需要:

  1. 注册behaviorExtension。
  2. 使用config扩展定义新的behaviorConfig。 (这是一个棘手的部分,如何做到这一点的报道很少。)
  3. 将配置应用于端点。

使用类似的东西:

                  ...  

您可以尝试inheritanceClientCredentialsElement (处理默认配置部分)并添加对UserName和Password的支持。 您可以在配置文件中将此元素注册为行为扩展,并使用它而不是通用配置节。

上述就是C#学习教程:在App.config中设置WCF ClientCredentials分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1029857.html

(0)
上一篇 2022年1月13日
下一篇 2022年1月13日

精彩推荐