Basing Authorization on the Message Body

How do I use a field in the message to answer an authorization request in ServiceAuthorizationManager? There are two ways to go about doing this. The first makes use of a new feature in Orcas while the other is potentially more flexible and definitely requires more work. There’s a new overload for CheckAccess in ServiceAuthorizationManager…

2

Taking Action on Client Close

How do I clean up resources on the server when a duplex client closes its half of the connection? Duplex services sometimes need to be a little bit more aggressive cleaning up after clients. Unlike with other channel shapes, a duplex client can decide to stop sending requests but continue to receive responses from the…

1

Accessing the Query String

How do I get access to the query string of an HTTP request when processing a message? The query string isn’t one of the properties available on the new WebOperationContext but you can still get access to it through the HTTP request message property. MessageProperties properties = OperationContext.Current.IncomingMessageProperties;HttpRequestMessageProperty requestProperty = (HttpRequestMessageProperty)properties[HttpRequestMessageProperty.Name];string queryString = requestProperty.QueryString; Next…

4

Get a Real XML Parser

Today’s post is more observational than informational. Enjoy. It’s sometimes possible to write XML without having an XML library. If your XML documents are sufficiently similar and templated, then you can craft validly formed XML through little more than string manipulation. The trivial case is where the string is a constant expression and the XML…

1

25 Years of TCP/IP on the Internet

On January 1st, 1983 the ARPANET officially switched over from using NCP (Network Control Protocol) to TCP/IP (Transmission Control Protocol over Internet Protocol). This followed a year where the ARPANET supported a mix of NCP and TCP/IP machines using relay servers that supplied Telnet, FTP, and mail services across the two protocols. While the Telnet…

1