Partager via


How do I use SecureString type in SharePoint 2007?

SecureString is the type that's used for passwords in SharePoint 2007.  You might find its use when you are automating some "higher level" administration operation (like creating a web application for example).  How do you use it is shown below:

    1: private static SecureString ConvertString(string strPwd)
    2: {
    3:     if (strPwd == null)
    4:         return null;
    5:     SecureString strSecurePassword = new SecureString();
    6:     foreach (char ch in strPwd)
    7:         strSecurePassword.AppendChar(ch);
    8:     strSecurePassword.MakeReadOnly();
    9:     return strSecurePassword;
   10: }

The above method will return the type SecureString that we can pass to the calling application like below:

    1: SPWebApplicationBuilder oBuilder = new SPWebApplicationBuilder(SPFarm.Local);
    2: oBuilder.ApplicationPoolPassword = ConvertString("test");

SecureString finds its place when you deal with the following APIs:

SPFarm.Create

SPFarm.Open

SPSecurity.SetApplicationCredentialKey

SPEncryptedString.UpdateSecureStringValue

SPPeoplePickerSearchActiveDirectoryDomain.SetPassword

SPEncryptedString.SecureStringValue

SPProcessIdentity.SecurePassword

SPWebApplicationBuilder.ApplicationPoolPassword

SPRestoreSettings.FarmAdminPassword

SPMetabaseManager.ProvisionIisApplicationPool

PasswordTextBox.SecurePassword - this is a control.

These are the APIs that I could see uses SecureString, there might be others as well.  Just came across an automation scenario lately where I had to create multiple web applications and wondered how to I set the password of type SecureString.

Invested around 20-30 minutes of time figuring it out, so thought if I post this, it might as well be helpful to others :)

Keep hacking!

Comments

  • Anonymous
    October 19, 2008
    PingBack from http://stevepietrek.com/2008/10/19/links-10192008/

  • Anonymous
    December 09, 2008
    It's sad that the SetApplicationCedentialKey API has been misspelled in the MSDN documentation for several months now.

  • Anonymous
    August 17, 2009
    Hi Sridhar, I had a problem of adding Multiple choices to the Drop Down to a custom field in a list. But i have looked at your way of adding them through the StringCollection Class. It really solved my problem. Thanks a lot.