SSO Config Data Store Tool, BizTalk/WCF Scenario Source Code Available

I’ve finally gotten around to publishing my source code for my SSO Configuration Data Store Tool.  You can download both the runtime application and underlying source code from here.  If you want to mess around with it, great, but please keep my name on there.

Although I’m not finished with my “BizTalk + WCF” series for TopXML.com yet, I have finished the first part of the series on consuming WCF services.  So, I’ve put the source code I used for all those demonstrations right here.  The binding file is in there as well.  Once I finish the last part of the series, I’ll post that source code too.

Enjoy.

Technorati Tags: ,

Author: Richard Seroter

Richard Seroter is Director of Developer Relations and Outbound Product Management at Google Cloud. He’s also an instructor at Pluralsight, a frequent public speaker, the author of multiple books on software design and development, and a former InfoQ.com editor plus former 12-time Microsoft MVP for cloud. As Director of Developer Relations and Outbound Product Management, Richard leads an organization of Google Cloud developer advocates, engineers, platform builders, and outbound product managers that help customers find success in their cloud journey. Richard maintains a regularly updated blog on topics of architecture and solution design and can be found on Twitter as @rseroter.

12 thoughts

  1. Thanks Richard. This is a great project and extremely useful. I have found the MMC snap-in to be too restrictive and a standalone, open-source tool like this one is just what is needed.

    Cheers
    Mark

  2. Hi Richard,
    Thanks for releasing the source on this. I was able to modify it such that I can add new fields/values to an existing application. I basically have to do this by kind of a memento type pattern where by an app state is stored, delete and recreated each time a new field is added.

    The only piece I ma having trouble with is getting the field configuration during an app retrieve, that is the “masked” flag. Do you have any suggestions to point me in the right direction as to where ot retrieve that from the API?

    Thanks,
    c

  3. Currently, when a new field is added, I snapshot, delte and recreate the application with the new field. Problem is I don’t have anyway of knowing whther the original fieilds were masked or not so I just recreate them all as unmasked for now.

    Just the propery name values are returned from the SSO api. These are then loaded into the derived property bag. The API does not return whether each name/value is masked or not. The documentation states that Getconfig can be called with the LOOKUP_RUNTIME (returns all properties for an app) flag or the ADMIN flag (returns on unmasked). I was thinking that I could call both and do a compare of the returned prop bags to illustrate in the UI and retain for recreation which properties are masked and which are not on the edit tab. Also, when I recreate the application with each addition of a field, I’d be able to allow the user to set masked/unmasked property and retain the masked properties for the other fields.

    I’ve tried with the run time flag which indeed returns all fields for an app. I also tried all of the ADMIN flags but they too return all the fields of an app regardless of masking.

  4. Hi Richard,

    Thanks for sharing the source with us! I’m fairly new to BizTalk and .Net so my mind is being stretched a bit. I’m trying to make some minor mods, and it’s driving me CRAZY!

    All I’m trying to do is replace the “Application Name” text box on the “Manage Application” tab with a combo box that is populated with a list of the existing applications.

    I’m using the ISSOMapper.GetApplications method to return the list of applications, and this works great – returning the same list of apps shown in the MMC tool. The goofy thing is that your app can’t seem to find any of the apps listed in the MMC tool! Also, your app will retrieve data for apps created using your app (if I type the name I used to create them) so they are stored somewhere, but it can’t retrieve the info for the apps that are listed in the MMC tool and returned in the dropdown.

    It’s almost like they are pointing to different servers, but I don’t see anywhere to designate them.

    What am I missing??

    Thanks!

  5. Hi Kelly,

    I’ve heard someone else say that this application doesn’t show what’s in the MMC. Does my app not use the same ISSOMapper API that you do to get the application list?

  6. Richard,

    As far as I can tell, your app doesn’t use the ISSOMapper API at all. It actually doesn’t provide the ability to view a list of applications – the user has to know the name of the application they are looking for in order to view/edit the settings.

    As I mentioned in my earlier post, apps added through your application don’t appear in the MMC, and the apps listed in the MMC aren’t viewable/editable via this app.

    Very strange.

    Thanks – Kelly

  7. By the way, here is the method I inserted into the SSOConfigManager.cs:

    public static string[] GetApplicationList()
    {
    if (ApplicationList == null)
    {
    string[] descs;
    string[] contacts;
    ISSOMapper mapper = new ISSOMapper();
    mapper.GetApplications(out ApplicationList, out descs, out contacts);
    }
    return ApplicationList;
    }

    And here is the method I added to ApplicationManager.cs that retrieves the application list into the combo box:

    private void loadAppList()
    {
    cmbSelectApp.Items.Clear();
    string[] appList = SSOConfigManager.GetApplicationList();
    foreach (string s in appList)
    cmbSelectApp.Items.Add(s);
    }

    Thanks – Kelly

    1. Hi Sam, the source is attached to this blog post. I don’t maintain it as an open source project (as in accepting feedback and releasing updates), but anyone can take the source code and do with as they please.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.