SSO as a Configuration Store Example

Home Page Forums BizTalk 2004 – BizTalk 2010 SSO as a Configuration Store Example

Viewing 1 reply thread
  • Author
    Posts
    • #14937

      Another question about an example from
      [url]http://msdn.microsoft.com/biztalk/downloads/samples/[/url].

      Is there any reason the SSO Config code would not run on 2004?

      I’ll probably give it a try later, unless someone has already given it a try an knows it doesn’t work.

      Also, I’m unclear what security you would have to have to run it?
      Can any BiztalkDeveloper run it? Or would you have to be SSO-Admin or SSO-Affiliate?

      Thanks in advance!

    • #14938

      Got it to work! There were a few changes:

      1) CHANGE: public static class SSOConfigHelper
      TO: public class SSOConfigHelper

      Apparently \”STATIC\” is a new keyword on classes in VS2005.

      2) I learned that you cannot just change the variable names stored in SSO, they are predefined in the XML File

      [code:1:05d688a10c]<?xml version=\"1.0\"?>
      <sso>
      <application name=\"AppMgmtUsingSSOApp\">
      <description>AppMgmtUsingSSOApp</description>
      <appUserAccount>BizTalk Application Users</appUserAccount>
      <appAdminAccount>BizTalk Server Administrators</appAdminAccount>
      <field ordinal=\"0\" label=\"reserved\" masked=\"no\" />
      <field ordinal=\"1\" label=\"connectionString\" masked=\"yes\" />
      <flags configStoreApp=\"yes\" allowLocalAccounts=\"yes\" enableApp=\"yes\" />
      </application>
      </sso>[/code:1:05d688a10c]

      3. Here’s my unit test code – many changes:

      [quote:05d688a10c]using System;
      using NUnit.Framework;
      using System.Text;
      //using System.Collections.Generic;
      //using Microsoft.VisualStudio.TestTools.UnitTesting;

      // This is an attempt to port some 2006 Biztalk Sample Code back to 2004
      // Neal Walters – 06/27/2006

      namespace ABCompany.SSOConfig.Test.Unit
      {
      /// <summary>
      /// Summary description for UnitTester.
      /// </summary>
      [TestFixture]
      public class Tests
      {
      string baseConnStr = \”server=(local);uid=sa;pwd=pass@word1\”;
      // NOTE: This appName must be configured using SSOMANAGE Utility
      string appName = \”AppMgmtUsingSSOApp\”;

      [Test]
      public void SSOConfigHelperReadTest()
      {
      string getConnStr = SSOConfigHelper.Read
      (appName, \”connectionString\”);
      // NOTE: the variable name \”connectionString must be predefined as well
      // (it’s in the AppMgmtUsingSSOApp.xml file
      Assert.AreEqual(baseConnStr, getConnStr);
      Console.WriteLine(\”connectionString value in {0} is {1}\”, appName, getConnStr);
      }

      /// <summary>
      /// SSOConfigHelperWriteTest tests the Write method of the SSOConfigHelper class
      /// </summary>
      [Test]
      public void SSOConfigHelperWriteTest()
      {
      SSOConfigHelper.Write(appName, \”connectionString\”, baseConnStr);
      Console.WriteLine (\”Store completed\”);
      string readbackConnStr = SSOConfigHelper.Read
      (appName, \”connectionString\”);
      // NOTE: the variable name \”connectionString must be predefined as well
      // (it’s in the AppMgmtUsingSSOApp.xml file
      Console.WriteLine (\”Readback ConnectionString Value=\” + readbackConnStr);
      Assert.AreEqual(baseConnStr, readbackConnStr);

      }

      [Test]
      // TODO: put the \”expectsException here
      public void SSOConfigHelperReadTestBadAppname()
      {
      string getConnStr = SSOConfigHelper.Read(\”badAppName\”, \”MySecretConnectionString\”);
      Assert.AreEqual(baseConnStr, getConnStr);
      Console.WriteLine(\”connectionString value in {0} is {1}\”, appName, getConnStr);
      }

      [Test]
      public void SSOConfigHelperReadTestBadVarname()
      {
      string getConnStr = SSOConfigHelper.Read(appName, \”MyNonExistingVarName\”);
      Assert.AreEqual(null, getConnStr);
      Console.WriteLine(\”connectionString value in {0} is {1}\”, appName, getConnStr);
      }

      } // end class

      } // end namespace [/quote:05d688a10c]

      4) Also had to make a reference to C:\\Program Files\\Common Files\\Enterprise Single Sign-On\\Microsoft.BizTalk.Interop.SSOClient.dll
      (their sample referenced a similar program directly in the GAC).

Viewing 1 reply thread
  • The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.