Directory Programming .NET

Active Directory and ADAM programming support for .NET developers
Welcome to Directory Programming .NET Sign in | Join | Help

External News

  • A Wierd ADFS Installer Issue and a Solution

    I've nearly given up blogging as you can probably tell by the gaps between my posts these days and am uncertain whether I'll ever get that going again or not.  Who knows?  However, something weird happened today related to ADFS that I thought might be worth a post that I decided to document for posterity. Essentially, a colleague of mine at work was trying to install the ADFS Web Agent on a Win2K3 R2 server using the standard method of "Add/Remove Windows Components".  The OS w... [read more]
    05-20-2009, 4:11 PM by Joe Kaplan
  • PhluffyFotos v2 Released

    We have just released an updated version of the SSDS sample application called 'PhluffyFotos'.  Clouds are fluffy and this is a cloud services application - get it?  This sample application is a ASP.NET MVC and Windows Mobile application showing how to build a photo tagging and sharing site using our cloud data service, SSDS.  For this update: Updated to MVC Preview 4.  We have removed hardcoded links and used the new filtering capability for authorization.  Of cours... [read more]
    09-04-2008, 4:32 PM by Ryan Dunn
  • SSDS REST Library v2 Released

    I have just updated the Code Gallery page to reflect the new version of the REST-based library for SSDS.  This is a fairly major update to library and adds a ton of new features to make working with SSDS even easier than it already is for the .NET developer.  Added in this release: Concurrency support via Etags and If-Match, If-None-Match headers.  To get a basic understanding of how this works, refer here. Blob support.  The library introduces a new type called SsdsBlo... [read more]
    09-04-2008, 3:25 PM by Ryan Dunn
  • Concurrency with SSDS via REST

    Eugenio already covered concurrency via the SOAP interface with with latest post.  The idea is exactly the same in REST, but the mechanics are slightly different.  For REST, you specify a "Etag" value and either the If-Match or If-None-Match headers. Here is a simplified client that does a PUT/POST operation on SSDS: internal void Send(Uri scope, string etag, string method, string data, Action<string, WebHeaderCollection> action, Action<WebException> exception) { using ... [read more]
    08-26-2008, 12:30 PM by Ryan Dunn
  • Working with Objects in SSDS Part 3

    Here is my last installment in this series of working with objects in SQL Server Data Services.  For background, readers should read the following: Serialization in SSDS Working with Objects in SSDS Part 1 Working with Objects in SSDS Part 2 Last time, we concluded with a class called SsdsEntity<T> that became an all-purpose wrapper or veneer around our CLR objects.  This made it simple to take our existing classes and serialize them as entities in SSDS. In this post, ... [read more]
    07-02-2008, 6:43 PM by Ryan Dunn
  • Working with Objects in SSDS Part 2

    This is the second post in my series on working with SQL Server Data Service (SSDS) and objects.  For background, you should read my post on Serializing Objects in SSDS and the first post in this series. Last time I showed how to create a general purpose serializer for SSDS using the standard XmlSerializer class in .NET.  I created a shell entity or a 'thin veneer' for objects called SsdsEntity<T>, where T was any POCO (plain old C#/CLR object).  This allowed me to abstra... [read more]
    06-26-2008, 3:03 PM by Ryan Dunn
  • Working with Objects in SSDS Part 1

    Last time we talked about SQL Server Data Services and serializing objects, we discussed how easy it was to use the XmlSerializer to deserialize objects using the REST interface.  The problem was that when we serialized objects using the XmlSerializer, it left out the xsi type declarations that we needed.  I gave two possible solutions to this problem - one that used the XmlSerializer and 'fixed' the output after the fact, and the other built the XML that we needed using XLINQ and Ref... [read more]
    06-17-2008, 10:17 PM by Ryan Dunn
  • LINQPad - not just for LINQ

    I officially love LINQPad.  Joe Albahari has done a great job of introducing a light weight tool that is great for learning and prototyping LINQ queries.  From what I gather, Joe and Ben Albahari built this tool as part of their book offering.  It was so useful, it has taken on a life of its own. It may not be entirely obvious, but it turns out don't have to use LINQPad solely for LINQ queries.  You can actually prototype any type of snippet of code.  I have been usin... [read more]
    06-11-2008, 12:47 PM by Ryan Dunn
  • Paged Asynchronous LDAP Searches Revisited

    A member in the book's forum mentioned some code I had originally posted here in the blog for asynchronous, paged searches in System.DirectoryServices.Protocols (SDS.P).  He questioned whether or not it was thread safe.  I honestly don't know - it might not be as I didn't test it extensively. Regardless, I had actually moved on from that code and started using anonymous delegates for callbacks instead of events.  I liked this pattern a bit better because it also got rid of the ... [read more]
    06-05-2008, 1:56 PM by Ryan Dunn
  • PhluffyFotos Sample Available

    I just posted the first version of PhluffyFotos, our SQL Server Data Services (SSDS) sample app to CodePlex.  PhluffyFotos is a photo sharing site that allows users to upload photos and metadata (tags, description) to SSDS for storage.  As the service gets more features and is updated, the sample will be rev'd as well. Points of interest that will likely also be blog posts in themselves: This sample has a LINQ-to-SSDS provider in it.  You will notice we don't use any strings... [read more]
    04-09-2008, 2:02 PM by Ryan Dunn
  • DEC 2008 Wrap Up and Materials

    It seems like I've deteriorated into semi-annual blog posts.  Sigh.  At least the discussion groups at www.directoryprogramming.net continue to flourish and we are seeing a nice uptick in activity on the ADFS board there.  I think the writing may be on the wall for me as a blogger, but who knows.  Perhaps I'll get back on the wagon. Anyway, thanks to all the people who came to see my talks at DEC this year.  I hope you enjoyed visiting my town and you got a lot out of... [read more]
    03-11-2008, 11:41 PM by Joe Kaplan
  • .NET 3.5 VPC and Resources Available

    If you are interested in learning more about Visual Studio 2008, make sure you check out the Visual Studio 2008 Training Kit.  Weighing in at roughly 120MB compressed, it contains, "a full 5-days of technical content including 20 hands-on labs, 28 presentations, and 20 scripted demos.   The technologies covered in the kit include:  LINQ, C# 3.0, VB 9, WCF, WF, WPF, Windows CardSpace, Silverlight, ASP.NET Ajax, .NET Compact Framework 3.5, VSTO 3.0, Visual Studio Team Sys... [read more]
    12-03-2007, 1:11 PM by Ryan Dunn
  • Implementing Change Notifications in .NET

    There are three ways of figuring out things that have changed in Active Directory (or ADAM).  These have been documented for some time over at MSDN in the aptly titled "Overview of Change Tracking Techniques".  In summary: Polling for Changes using uSNChanged. This technique checks the 'highestCommittedUSN' value to start and then performs searches for 'uSNChanged' values that are higher subsequently.  The 'uSNChanged' attribute is not replicated between domain controllers, so... [read more]
    10-30-2007, 1:14 PM by Ryan Dunn
  • Welcome to the world, baby Micah!

    Given that I haven't posted on this blog for months, I'm not sure if anyone still reads it, but I thought I'd take a few moments to inform my loyal readers of a new addition to the family. Micah Kaplan Yarbrough was born October 15, 2007 at 11:40 AM at Prentise Women's Hospital (part of Northwestern Memorial Hospital) in downtown Chicago, just like like his older brother Evan. He arrived 10 days before he was expected and almost a month sooner than his brother (who was quite late) and was a... [read more]
    10-16-2007, 9:23 AM by Joe Kaplan
  • Using SQLDependency objects with LINQ

    A question came up the other day on how to get LINQ to SQL to participate in using the SQL Notification Services.  Of course, I didn't know, but Mike Pizzo from the ADO.NET team was kind enough to answer.  I figured it must be possible, and sure enough, it is.  Essentially, you have to create a SQL dependency context, which is very similar to a transaction context.  Any code that participates within that context will automatically be associated with the SQLDependency.  ... [read more]
    09-14-2007, 3:24 PM by Ryan Dunn
  • Range Retrieval using System.DirectoryServices.Protocols

    Link pair attributes in Active Directory and ADAM can be quite big.  I don't know the official limit, but needless to say, for practical purposes you can assume they are quite large indeed.  By default, AD and ADAM will not return the entire attribute if it contains more than a certain number of values (1000 for Windows 2000 and 1500 for Windows 2003+ by default).  As such, if you truly want robust code, you need to always use what is called range retrieval for link value paired ... [read more]
    08-10-2007, 3:53 PM by Ryan Dunn
  • Getting Active Directory Group Membership in .NET 3.5

    I have previously covered pretty extensively the options for getting a user's group membership in Active Directory or ADAM (soon to be Active Directory LDS (Lightweight Directory Services)) here on the blog, in the forum, and in the book.  However, there is a new option for users of .NET 3.5 that should be of interest. The Directory Services group at Microsoft has released in beta form a new API for dealing with a lot of the common things we need to do with users, groups, and computers i... [read more]
    08-01-2007, 3:33 PM by Ryan Dunn
  • Discovering IIS7 Schema

    One of the major changes introduced with IIS7 is the removal of the metabase.  This probably comes as a great relief to many of the admins and developers that struggled with coordinating configuration across multiple machines.  Instead of the metabase, IIS7 has chosen to schematize all the web server settings and host them centrally in a new XML file called applicationHost.config located at '%windir%\system32\inetsrv\config'. The schema itself can be found in the 'schema' folder rig... [read more]
    07-27-2007, 4:08 PM by Ryan Dunn
  • Directory Services Samples Milestone

    I was checking on the book's website the other day and noticed that we broke the 54,000 mark for downloads of our sample code.  That really surprised me.  I just didn't think that there were that many people in the world working on these types of scenarios.  Now, I happen to know that we did not sell that many copies of the book, so this means a lot of people are downloading just the samples.  For the record, that is perfectly fine and we encourage people to look at the sa... [read more]
    06-28-2007, 5:00 PM by Ryan Dunn
  • Working with Large Amounts of Data in Directory Services

    I almost missed this one from Tomek, but he has a good analysis of what happens when you have many results to return from the directory and a nice comparison of how the different stacks (System.DirectoryServices vs. System.DirectoryServices.Protocols) handle it.  The moral of the story:  if you have a ton of results coming back, it might be in your interest to pursue using the Protocols stack.
    06-01-2007, 12:39 PM by Ryan Dunn
  • Interested in ORcas or IIS7? We're Hiring

    If you are the type of person that loves learning the latest and greatest technologies and sharing it with others, then we have two job openings right up your alley.  My manager has more details here.
    06-01-2007, 12:33 PM by Ryan Dunn
  • DEC 2007 Follow Up

    I was lucky enough to attend DEC again this year and was even more lucky to have been asked to speak due to an unfortunate last minute cancellation.  This year, I presented on a variation of the same type of stuff that Ryan and I presented on at DEC 2006.  This year, I had to fly solo as Ryan could not attend.  :( Here's what we did differently this time around: No PowerShell (DEC already had 2 PowerShell sessions, so why bother?) Focus on some new Longhorn LDAP and AD fea... [read more]
    04-27-2007, 11:58 AM by Joe Kaplan
  • In Chain Matching Rule should not be Used for Transitive Link Expansion

    Microsoft has added a new LDAP feature to AD in Windows 2003 SP2 and Longhorn server called the LDAP_MATCHING_RULE_IN_CHAIN.  Essentially, it is an extension filter type that allows you to search withing the content of a distinguished name-syntax attribute and do matching throughout the entire chain of linked values instead of just within the immediate values.  The docs are here and the syntax looks like this: (memberOf:1.2.840.113556.1.4.1941:=CN=some group,CN=xxxx,DC=xxxx,DC=xxxx)... [read more]
    04-27-2007, 10:24 AM by Joe Kaplan
  • Introduction to System.DirectoryServices.Protocols (S.DS.P)

    Fellow MVP, Ethan Wilansky has a new article on MSDN outlining the System.DirectoryServices.Protocols stack.  I haven't had a chance to read every last word in it yet (it's a huge article!), but it appears to show roughly 80% of everything you might want to do with SDS.P.  Check it out. Link to Introduction to System.DirectoryServices.Protocols (S.DS.P)
    04-15-2007, 5:41 PM by Ryan Dunn
  • Transitive Link Value Filter for SP1

    If hot-LDAP-filter-action is your thing, but you were let down in my last post since it required SP2 and Longhorn, then this should get you all hot and bothered again:  Hotfix for SP1. I know, it's a hotfix - which means you have to contact Microsoft to get it.  But if you want to take advantage of the new LDAP_MATCHING_RULE_IN_CHAIN without upgrading to SP2 or Longhorn, then this is it.
    04-05-2007, 12:18 PM by Ryan Dunn
  • More Posts Next page »

Syndication