Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我需要再次添加NetworkCredential?_C#_Web Services_Soap - Fatal编程技术网

C# 为什么我需要再次添加NetworkCredential?

C# 为什么我需要再次添加NetworkCredential?,c#,web-services,soap,C#,Web Services,Soap,在visual Studio中,我添加了一个服务引用(web引用)。在那里,我输入了web服务(soap)的URL。 我需要对它进行身份验证,我做到了 现在,当我向它发出请求时,我得到“请求失败,HTTP状态为401:Unauthorized”。 我通过添加以下内容来解决此问题: var service = new MyWebService(); service.Credentials = new NetworkCredential("userName", "password", "domain

在visual Studio中,我添加了一个服务引用(web引用)。在那里,我输入了web服务(soap)的URL。 我需要对它进行身份验证,我做到了

现在,当我向它发出请求时,我得到“请求失败,HTTP状态为401:Unauthorized”。 我通过添加以下内容来解决此问题:

var service = new MyWebService();
service.Credentials = new NetworkCredential("userName", "password", "domain");

而且效果很好。但是为什么我需要再次进入呢?是否可以保存身份验证信息?

凭据不会存储在WSDL中-这会适得其反。您可以在应用程序(客户端)中保存身份验证信息[但请不要在配置文件中以纯文本形式保存!]。好的,那么最好将其保存在my.cs文件中,就像现在一样?是的,但请注意,如果凭据发生更改,您需要重新构建应用程序。我们在工作中有类似的东西,但我们有一个专用的服务,应用程序使用它在运行时检索凭据。这允许我们在不重建所有应用程序的情况下更新凭证服务后面的数据库。您还可以在配置文件中加密凭证。搜索加密.net配置文件或类似字符串。我们也为生活在非军事区的应用程序做到了这一点。