回答編集履歴

3

追記&訂正

2018/10/21 03:05

投稿

退会済みユーザー
test CHANGED
@@ -84,7 +84,7 @@
84
84
 
85
85
 
86
86
 
87
- HelloWorld をクリックしていって期待通りの応答が返ってくることを確認後、上の画像の認証ダイアログで使ったのと同じコンピュータ名、アカウント名、パスワードをそれぞれ以下のように Domain、UserName、Password 設定します。
87
+ HelloWorld をクリックしていって期待通りの応答が返ってくることを確認後、上の画像の認証ダイアログで使ったのと同じコンピュータ名、アカウント名、パスワードをそれぞれ以下のように Domain、UserName、Password 設定します。
88
88
 
89
89
 
90
90
 

2

追記

2018/10/21 03:05

投稿

退会済みユーザー
test CHANGED
@@ -21,3 +21,125 @@
21
21
 
22
22
 
23
23
  分からないことがあれば聞いてください。
24
+
25
+
26
+
27
+ **【追記】**
28
+
29
+
30
+
31
+ 下の 2018/10/20 10:15 の私のコメントで「後で自分がどのようにしたかもう少し詳しい情報を書きます」と書きましたが、それを以下に追記します。
32
+
33
+
34
+
35
+ まず開発環境ですが以下の通りです。
36
+
37
+
38
+
39
+ Web サービス
40
+
41
+ ・Windows 10 Pro 64-bit
42
+
43
+ ・Visual Studio Pro 2010
44
+
45
+ ・ASP.NET Web サイト(注:テンプレートは「空」ではない)
46
+
47
+ ・.NET 4
48
+
49
+ ・ローカル IIS10 (Default Web Site 下のアプリケーションとして設定)
50
+
51
+ ・SSL 使用せず
52
+
53
+ ・IE11
54
+
55
+
56
+
57
+ Windows Forms アプリ
58
+
59
+ ・Windows 10 Pro 64-bit
60
+
61
+ ・Visual Studio Community 2015
62
+
63
+ ・.NET 4.6.1
64
+
65
+
66
+
67
+ 質問者さんが参考にされている記事とほぼ同じ手順で HelloWorld のみの Web サービスを追加し、質問者さんが行ったように IIS Manager で Windows 認証を有効にし匿名認証ほか他はすべて無効に設定します。
68
+
69
+
70
+
71
+ IE11 を立ち上げて、アドレスバーに上記で追加した Web サービスの URL を張り付けて要求をかけると、以下の認証情報を要求するダイアログが表示されます。(Windows 認証は IE と IIS で実現されている機能です。必ず IE を使ってください)
72
+
73
+
74
+
75
+ ![イメージ説明](20acd85c8455ec50e3a2ea8ddbf8386f.jpeg)
76
+
77
+
78
+
79
+ PC を立ち上げる時ログインに使っている自分のアカウント名とパスワードを入力して[OK]ボタンをクリックすれば、質問者さんが筆問にアップされた画像と同じものが表示されます。
80
+
81
+
82
+
83
+ ![イメージ説明](22aea0b5d8100d3b22b11743a3a4f0db.jpeg)
84
+
85
+
86
+
87
+ HelloWorld をクリックしていって期待通りの応答が返ってくることを確認後、上の画像の認証ダイアログで使ったのと同じコンピュータ名、アカウント名、パスワードをそれぞれ以下のように Domain、UserName、Password の設定します。
88
+
89
+
90
+
91
+ ```
92
+
93
+ private void button1_Click(object sender, EventArgs e)
94
+
95
+ {
96
+
97
+ System.ServiceModel.BasicHttpBinding binding =
98
+
99
+ new System.ServiceModel.BasicHttpBinding(
100
+
101
+ System.ServiceModel.BasicHttpSecurityMode.TransportCredentialOnly);
102
+
103
+ binding.Security.Transport.ClientCredentialType =
104
+
105
+ System.ServiceModel.HttpClientCredentialType.Windows;
106
+
107
+ System.ServiceModel.EndpointAddress address =
108
+
109
+ new System.ServiceModel.EndpointAddress(
110
+
111
+ new Uri("http://localhost/WindowsAuthntication/WebService.asmx"));
112
+
113
+
114
+
115
+ ServiceReference1.WebServiceSoapClient proxy =
116
+
117
+ new ServiceReference1.WebServiceSoapClient(binding, address);
118
+
119
+
120
+
121
+ proxy.ClientCredentials.Windows.ClientCredential.Domain = "MyComputer";
122
+
123
+ proxy.ClientCredentials.Windows.ClientCredential.UserName = "surfe";
124
+
125
+ proxy.ClientCredentials.Windows.ClientCredential.Password = "*****************";
126
+
127
+
128
+
129
+ string value = proxy.HelloWorld();
130
+
131
+ label1.Text = value;
132
+
133
+ }
134
+
135
+ ```
136
+
137
+ 以上で Windows Forms アプリからも認証は通るようになり、Web サービスから期待した応答が返ってきます。
138
+
139
+
140
+
141
+ ちなみに、Domain, UserName, Password の設定なしの場合、現在のユーザーのクレデンシャルが自動的に使われるようで(想像です)、認証が通るという結果になりました。ご参考まで。
142
+
143
+
144
+
145
+ 質問者さんのケースでは、IE でアクセスした場合の認証ダイアログが出ないとのことですが、そのあたりの理由は分かりません。

1

訂正

2018/10/21 03:01

投稿

退会済みユーザー
test CHANGED
@@ -2,9 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- ユーザー情報を入力するダイアログが表示されませんか? ないとすると何か変なのですが
5
+ ユーザー情報を入力するダイアログが表示されませんか? ダイアログが出ないとすると何か変なのですが(匿名認証が有効になっているとか?)、とりあえずそれはちょっと置いといて・・・
6
-
7
- 、とりあえずそれはちょっと置いといて・・・
8
6
 
9
7
 
10
8