我开发了一个用于创建和管理FTP站点和IIS用户的应用程序。
有一种创建IIS用户的方法:
public static void CreateIisUser(string userName, string password)
{
using (var serverManager = new ServerManager())
{
var config = serverManager.GetAdministrationConfiguration();
var authenticationSection = config.GetSection("system.webServer/management/authentication");
var credentialsCollection = authenticationSection.GetCollection("credentials");
var exist = credentialsCollection.Any(m => (string)m["name"] == userName);
if (exist)
{
return;
}
var addElement = credentialsCollection.CreateElement("add");
addElement["name"] = userName;
addElement["password"] = password;
addElement["enabled"] = true;
credentialsCollection.Add(addElement);
serverManager.CommitChanges();
}
}
它有效,但由于密码不正确,我无法访问FTP文件夹。
通过IIS管理器更改用户密码对我有帮助。
我的代码有什么问题?
感谢。
答案 0 :(得分:1)
密码应使用SHA-256加密:
public static string HashSha256(string value)
{
var sb = new StringBuilder();
using (var hash = SHA256Managed.Create())
{
var enc = Encoding.UTF8;
var result = hash.ComputeHash(enc.GetBytes(value));
foreach (var b in result)
{
sb.Append(b.ToString("x2"));
}
}
var hashSha256 = sb.ToString().ToUpper();
return hashSha256;
}