/// <summary> /// SerializeCredentials method implementation /// </summary> public string SerializeCredentials(MFAUserCredential creds, string username) { MemoryStream stream = new MemoryStream(); BinaryWriter writer = new BinaryWriter(stream); writer.Write(creds.Descriptor.Id.Length); writer.Write(creds.Descriptor.Id, 0, creds.Descriptor.Id.Length); writer.Write(creds.UserId.Length); writer.Write(creds.UserId, 0, creds.UserId.Length); writer.Write(creds.PublicKey.Length); writer.Write(creds.PublicKey, 0, creds.PublicKey.Length); writer.Write(creds.UserHandle.Length); writer.Write(creds.UserHandle, 0, creds.UserHandle.Length); writer.Write(creds.SignatureCounter); writer.Write(creds.CredType); writer.Write(creds.RegDate.ToBinary()); writer.Write(creds.AaGuid.ToByteArray()); writer.Write((byte)creds.Descriptor.Type.Value); if (creds.Descriptor.Transports != null) { writer.Write(creds.Descriptor.Transports.Length); foreach (MFAAuthenticatorTransport tr in creds.Descriptor.Transports) { writer.Write((byte)tr); } } else { writer.Write(0); } string Descriptor = HexaEncoding.GetHexStringFromByteArray(stream.ToArray()); string distinguishedName = string.Empty; if (_host != null) { distinguishedName = GetMFAdistinguishedName(username); } else { distinguishedName = username; } distinguishedName = CheckSumEncoding.CheckSumAsString(distinguishedName); if (string.IsNullOrEmpty(creds.NickName)) { creds.NickName = "None"; } return(string.Format("B:{0}:{1}:{2}:{3}", (Descriptor.Length).ToString(), Descriptor, distinguishedName, creds.NickName)); }
/// <summary> /// CheckUserName method implementation /// </summary> private bool CheckUserName(string value, string userName) { bool validated = false; if (userName.ToLower().Equals(value.ToString().ToLower())) { validated = true; } else if (value.Equals(CheckSumEncoding.CheckSumAsString(userName))) { validated = true; } return(validated); }