endpoint.tv - How to Do API Key Verification with a WCF WebHttp (REST) Service
- Posted: Jun 17, 2010 at 7:00 AM
- 23,532 Views
- 4 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
For more info
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Oops, something didn't work.
What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in. You need to be signed in to Channel 9 to use this feature.What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in and view them all on your notifications page.sign up for email notifications?
Is there going to be a REST Starter Kit version for .NET 4??
Still working on the plan. Most of the server stuff ended up in .NET 4. The only part that we don't have is the HttpClient library (which is really cool). It totally works on .NET 4 if you just grab the source and build it.
How do we pass it in if we're using the WebReference ServiceClient object?
@Steve Scott: Thanks for your fine solution. I have changed it little so it can also be used with (OData) Service references. I also check the header of the request:
public string GetAPIKey(OperationContext operationContext)
{
var request = operationContext.RequestContext.RequestMessage;
var requestProp =
(HttpRequestMessageProperty)request.
Properties[HttpRequestMessageProperty.Name];
NameValueCollection queryParams =
HttpUtility.ParseQueryString(requestProp.QueryString);
string apiKey = queryParams[APIKEY];
if (apiKey == null)
{
apiKey = requestProp.Headers[APIKEY];
}
return apiKey;
}
and on the client, i pass the ApiKey in the header using the SendingRequest event:
service.SendingRequest += new
EventHandler<System.Data.Services.Client.SendingRequestEventArgs>
(service_SendingRequest);
static void service_SendingRequest(object sender,
System.Data.Services.Client.SendingRequestEventArgs e)
{
e.Request.Headers.Add("APIkey", "918704ec-4811-45b6-a169-16bae3df69a8");
}
See also:
http://adi.atosoriginblog.nl/2010/12/28/flexibel-apikey-gebruik-bij-wcf-data-services/
Remove this comment
Remove this thread
close