C#学习教程:在App.config中设置WCF客户端凭证我想避免这样做:UsingsvcAsNewMyServiceClientsvc.ClientCredentials.UserName.UserName="login"svc.ClientCredentials.UserName.Password="pw"...EndUsing相反,登录名和密码应该是配置。据我所知,不能使用serviceModel配置部分,因为它会造成安全漏洞。但是您可以为这些值创建常规的appSettings并在您的代码中使用它们:svc.ClientCredentials.UserName.UserName=ConfigurationManager.AppSettings("...")我建议不要使用这种方法,除非您加密配置文件。扩展LadislavMrnka的答案,您可能会发现这个事实非常有用:publicclassUserNameClientCredentials:ClientCredentialsElement{privateConfigurationPropertyCollectionproperties;publicoverrideTypeBehaviorType{get{returntypeof(ClientCredentials);}}//////用户名(必填)///publicstringUserName{get{return(string)base["userName"];}set{base["userName"]=value;}}//////密码(可选)///publicstringPassword{get{return(string)base["password"];}set{base["password"]=value;}}protectedoverrideConfigurationPropertyCollectionProperties{get{if(properties==null){ConfigurationPropertyCollectionbaseProps=base.Properties;baseProps.Add(newConfigurationProperty("userName",typeof(String),null,null,newStringValidator(1),ConfigurationPropertyOptions.IsRequired));baseProps.Add(newConfigurationProperty("密码",typeof(String),""));属性=基础属性;}返回属性;}}保护覆盖eobjectCreateBehavior(){varcreds=(ClientCredentials)base.CreateBehavior();creds.UserName.UserName=用户名;如果(密码!=null)creds.UserName.Password=密码;申请配置(学分);归还学分;之后,您需要使用类似的东西注册此自定义实现...这就是我为使新身份验证工作所做的进一步扩展Mormegil的答案,这是实现customBehavior的方法重命名的类仅遵循配置模式...//使用Mormegil的实现}之后您需要:注册behaviorExtension。使用config扩展定义一个新的behaviorConfig。(这是棘手的部分,关于如何做到这一点的报道很少。)将配置应用于端点。使用类似的东西:说“元素‘行为’具有无效的子元素”但将在运行时工作。-->...您可以尝试inheritanceClientCredentialsElement(处理默认配置部分)并添加对用户名和密码的支持。您可以将此元素注册为配置文件中的行为扩展,并使用它代替通用配置部分。以上就是C#学习教程:在App中设置WCFClientCredentials共享的所有内容。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处:
