我们编写了一个代码,用于调用具有域凭据的服务.现在域名已更改,并计划使用默认Windows帐户
所以我试图通过配置重置asmx webservice的网络凭据.我创建了一个SoapExtentsion类,并尝试覆盖它,即使它执行该行.但它永远不会被应用,并且总是以下现有代码获胜
实际代码
EmployeeService prxy = new EmployeeService();
prxy.Credentials = new System.Net.NetworkCredential("MyAccount", "pwd", "MyDomain");
//prxy.UseDefaultCredentials = true;// It works but we dont want code change
prxy.GetEmployee(empId);
Run Code Online (Sandbox Code Playgroud)
新代码/配置仅更改
计划通过额外的dll和配置更改注入.因此,现在不需要/禁止原始代码中的代码更改
public class WindowsDefCredSoapExtn : SoapExtension
{
public override object GetInitializer(Type serviceType)
{
return "";
}
public override object GetInitializer(LogicalMethodInfo methodInfo, SoapExtensionAttribute attribute)
{
return "";
}
public override void Initialize(object initializer)
{
//throw new NotImplementedException();
}
public override void ProcessMessage(SoapMessage message)
{
if (message is SoapClientMessage)
{
if (message.Stage == SoapMessageStage.BeforeSerialize) …Run Code Online (Sandbox Code Playgroud)