在浏览器中键入我的Linksys路由器(Linksys WRT54GS)的IP时,我收到一条MessageBox说
"请输入用户名和密码。服务器说:Linksys WRT54GS"
我想使用此消息来识别我正在开发的C#应用程序中的设备。我如何得到最后一部分"服务器说:Linksys WRT54GS"变成一个字符串?
答案 0 :(得分:2)
你用什么来做出回应? Web客户端?
无论如何,您需要从请求中读取响应头。包含您要查找的字符串的标题是:
" WWW验证"
并且它包含与此类似的值:
"基本领域=" Linksys E4200""
您需要解析该值并阅读" Basic realm ="之后的内容。一部分。
答案 1 :(得分:1)
您看到此消息的原因是服务器可能返回HTTP状态代码401 Unauthorized
。作为该响应的一部分,服务器还应发送WWW-Authenticate:
标头,并为其提供basic
身份验证的realm
身份验证提供realm
,以便为其提供身份验证。 {{1}}是您在浏览器中显示的消息。请参阅more info here。
答案 2 :(得分:0)
由于这个链接,我想出了如何做到这一点:http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.getresponseheader.aspx
我的想法是捕获WebException并将响应状态代码与HttpStatusCode.Unauthorized匹配。
然后你可以通过challenge = response.GetResponseHeader(" WWW-Authenticate")获得你想要的东西;
感谢所有帮助过的人