我有一个带有许多IP地址的xml。像这样:
<settings>
<ipaddresses>
<ipaddress>1288</ipaddress>
<ipaddress>1999</ipaddress>
<ipaddress>555</ipaddress>
<ipaddress>88888</ipaddress>
</ipaddresses>
</settings>
现在我想检查其中一个IP地址是否与电脑的IP地址匹配。以便允许该用户查看该产品。
如果XML中的一个Ipaddresses与pc的Ipaddress不匹配,则必须返回错误消息。我这样试试:
XDocument doc = XDocument.Parse(product.AuthenticationSettings);
var IpAddress = doc.Descendants("ipaddress");
foreach (var IpAddresses in IpAddress)
{
bool IppAddressMatch = false;
if (GetClientIp() == IpAddresses.Value)
{
IppAddressMatch = true;
}
if (GetClientIp() != IpAddresses.Value)
{
// log message
return Content("<h1>403 Forbidden</h1>", "text/html");
}
}
但是我收到了这个错误:
错误6警告错误:分配了变量'IppAddressMatch' 但它的价值从未使用
答案 0 :(得分:3)
代码可能应该是这样的:
XDocument doc = XDocument.Parse(product.AuthenticationSettings);
var IpAddress = doc.Descendants("ipaddress");
bool IppAddressMatch = false;
foreach (var IpAddresses in IpAddress)
{
if (GetClientIp() == IpAddresses.Value)
{
IppAddressMatch = true;
break;
}
}
if (!IppAddressMatch)
{
// log message
return Content("<h1>403 Forbidden</h1>", "text/html");
}
重点是:如果PC的地址包含在XML中,那么一切正常,但如果PC中的地址未包含在XML中,那么就是错误。显然,当您找到一个匹配的地址时,您可以停止查找匹配的地址(break
)
答案 1 :(得分:-1)
您有两种方法可以解决此问题: