Мне нужно применить другой набор политик безопасности к URL-адресам «Справки» службы WCF. Как я могу получить полный URL-адрес службы WCF, а именно: Session
или Session.svc
?
http://localhost:62302/Session.svc/help
http://localhost:62302/Session.svc/help/operations/GetSession
http://localhost:62302/Session/help
http://localhost:62302/Session/help/operations/GetSession
Поскольку это связано с безопасностью, мне нужно проверять все, что я придумываю против сообщества. Автор здесь предлагает , чтобы я просто проверил, заканчивается ли строка «help», а затем вслепую разрешил этот запрос (что, очевидно, неверно)
Кодовый фрагмент
public class APIKeyAuthorization : ServiceAuthorizationManager
{
protected override bool CheckAccessCore(OperationContext operationContext)
{
if (this.IsHelpPage(operationContext.RequestContext.RequestMessage) || IsValidAPIKey(operationContext))
{
return true;
}
else
{
string key = GetAPIKey(operationContext);
// Send back an HTML reply
CreateErrorReply(operationContext, key);
return false;
}
}
private bool IsHelpPage(Message requestMessage)
{
return requestMessage.Headers.To.AbsolutePath.ToLower().EndsWith("help");
}
}
полный источник