41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace WebsitePanel.EnterpriseServer
|
|
{
|
|
public class OneTimePasswordHelper
|
|
{
|
|
public static string SetOneTimePassword(int userId)
|
|
{
|
|
int passwordLength = 12; // default length
|
|
|
|
// load password policy
|
|
UserSettings userSettings = UserController.GetUserSettings(userId, UserSettings.WEBSITEPANEL_POLICY);
|
|
string passwordPolicy = userSettings["PasswordPolicy"];
|
|
|
|
if (!String.IsNullOrEmpty(passwordPolicy))
|
|
{
|
|
// get third parameter - max length
|
|
try
|
|
{
|
|
passwordLength = Utils.ParseInt(passwordPolicy.Split(';')[2].Trim(), passwordLength);
|
|
}
|
|
catch { /* skip */ }
|
|
}
|
|
|
|
// generate password
|
|
var password = Utils.GetRandomString(passwordLength);
|
|
|
|
DataProvider.SetUserOneTimePassword(userId, CryptoUtils.Encrypt(password), (int) OneTimePasswordStates.Active);
|
|
|
|
return password;
|
|
}
|
|
|
|
public static void FireSuccessAuth(UserInfoInternal user)
|
|
{
|
|
DataProvider.SetUserOneTimePassword(user.UserId, CryptoUtils.Encrypt(user.Password), (int) OneTimePasswordStates.Expired);
|
|
}
|
|
}
|
|
}
|