تستهلك الأسلوب لم يرد ذكرها في OperationContract
سؤال
ولدي خدمات WCF. الذي فقد اثنين من الأساليب، مثلا الحصول على وحفظ. أريد أن فضح فقط طريقة الحصول على لطرف ثالث الذي سيتم استهلاك الخدمة في حين ينبغي أن يكون طلبي قادرة على استهلاك كل من الحصول على وحفظ.
هل هناك طريقة لتستهلك طريقة ليس في OperationContract؟ إنني أفكر في التحقق من اسم المضيف للطلب ومنح الوصول فقط إذا كان هذا هو اسم المضيف طلبي.
المحلول
لماذا لا ننشئ ServiceContract
الثاني يحتوي على كل Get
وSet
كما OperationContracts
؟ ثم هل يمكن تأمين الذي يمكن الحصول على هذا العقد الثاني.
[ServiceContract]
public interface IFoo
{
[OperationContract]
void Get();
}
[ServiceContract]
public interface IFooInternal : IFoo
{
[OperationContract]
void Set();
}
نصائح أخرى
وهنا هو رمز للتعرف على عنوان IP المضيف:
string GetAddressAsString()
{
RemoteEndpointMessageProperty clientEndpoint =
OperationContext.Current.IncomingMessageProperties[
RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
if (clientEndpoint != null)
{
return String.Format("{0}:{1}", clientEndpoint.Address, clientEndpoint.Port);
}
return "Failed to identify address";
}
لا تنتمي إلى StackOverflow