Skip to content

Instantly share code, notes, and snippets.

@vgrem
Created May 18, 2013 19:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vgrem/5605556 to your computer and use it in GitHub Desktop.
Save vgrem/5605556 to your computer and use it in GitHub Desktop.
Storage for connection strings. Demonstrates the usage of SPPersistedObject and utilizes the method UpdateSecureStringValue
public class SecuredConnectionString : SPPersistedObject
{
public SecuredConnectionString()
{
}
public SecuredConnectionString(string name)
: base(name, SPFarm.Local)
{
}
public void SetConnectionString(string key, string value)
{
if (_connectionString == null)
_connectionString = new SPEncryptedString(key, this);
_connStringToUpdate = FromString(value);
}
public override void Update()
{
if (_connStringToUpdate != null)
{
_connectionString.UpdateSecureStringValue(this._connStringToUpdate);
_connStringToUpdate = null;
}
base.Update();
}
private static SecureString FromString(string strIn)
{
if (strIn == null)
return null;
var secureString = new SecureString();
foreach (var c in strIn)
secureString.AppendChar(c);
secureString.MakeReadOnly();
return secureString;
}
[Persisted] private SPEncryptedString _connectionString;
private SecureString _connStringToUpdate;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment