Hi, i'm going to explain, how to allow some specific IP address to access my WCF Services and in this example, we need a xml file where we define to IPAddress to allow some specific address otherwise deny.
Example:
public IPAddressFilter
{
try
{
OperationContext context = OperationContext.Current;
MessageProperties msgProperties = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpointPropertes = msgProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
string IPAddress = endpointPropertes.Address;
if (!GetIP_From_Config_File(IPAddress))
{
HttpResponseMessageProperty responseProperty = new HttpResponseMessageProperty();
responseProperty.StatusCode = (System.Net.HttpStatusCode)401;
messageProperties["httpResponse"] = responseProperty;
response = 0 / response;
}
}
catch
{
throw;
}
}
private Boolean GetIP_From_Config_File(string IPstr)
{
Boolean idTrue = false;
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\Config.xml");
XmlNodeList IpAddress = xmlDoc.GetElementsByTagName("IPAddress");
string adrs = IpAddress[0].InnerText.Trim();
string[] arrayIPadrs = adrs.Split(',');
if (arrayIPadrs.Contains(IPstr))
{
idTrue = true;
}
}
catch
{
throw;
}
return idTrue;
}
Example:
public IPAddressFilter
{
try
{
OperationContext context = OperationContext.Current;
MessageProperties msgProperties = context.IncomingMessageProperties;
RemoteEndpointMessageProperty endpointPropertes = msgProperties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
string IPAddress = endpointPropertes.Address;
if (!GetIP_From_Config_File(IPAddress))
{
HttpResponseMessageProperty responseProperty = new HttpResponseMessageProperty();
responseProperty.StatusCode = (System.Net.HttpStatusCode)401;
messageProperties["httpResponse"] = responseProperty;
response = 0 / response;
}
}
catch
{
throw;
}
}
private Boolean GetIP_From_Config_File(string IPstr)
{
Boolean idTrue = false;
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\Config.xml");
XmlNodeList IpAddress = xmlDoc.GetElementsByTagName("IPAddress");
string adrs = IpAddress[0].InnerText.Trim();
string[] arrayIPadrs = adrs.Split(',');
if (arrayIPadrs.Contains(IPstr))
{
idTrue = true;
}
}
catch
{
throw;
}
return idTrue;
}