这里有一个sitecore新手。我们有一个使用Sitecore 8构建的现有网站。它位于我们的生产环境中。我最近加入了公司,我的后台是后端.NET开发。我被要求编写一个实用程序模块,允许我们删除符合特定条件的注册用户。该网站提供用户注册的能力,并且注册用户存储在核心数据库中。我最初的想法是直接反对数据库,但很快就知道存储的数据是序列化的。我还考虑过编写一个c#控制台应用程序来执行此操作,但似乎有很多配置/设置步骤可以执行此操作,并且从Web应用程序执行此操作会更好。有没有人有关于如何设置一个简单的实用程序Web应用程序来连接到现有Sitecore数据库的任何提示?我希望我会被要求在未来添加更多功能/功能。
答案 0 :(得分:1)
对于像这样的管理员功能,我很想使用Sitecore Powershell Extensions:https://marketplace.sitecore.net/en/Modules/Sitecore_PowerShell_console.aspx
Get-User命令可以将用户拉出系统: Get-User Documentation
PS master:\> Get-User -Filter "michaellwest@*.com"
Name Domain IsAdministrator IsAuthenticated
---- ------ --------------- ---------------
sitecore\michael sitecore False False
然后您可以使用Remove-User删除它们:Remove-User Documentation
关于如何使用SPE有很多很好的资源,对于像这样的东西来说真棒。
答案 1 :(得分:0)
据我了解,目标是能够删除某些用户。
最简单的方法是使用 Sitecore PowerShell模块,但对于你来说,作为一个新手并不是那么简单(你需要安装模块)。使用PowerShell模块,您甚至不需要创建用户界面。
Here is the documentation如何在PowerShell中使用Remove-User
如果PowerShell选项不适合您,您可以使用使用Sitecore API 的代码,因此您的Delete方法如下所示:
public void DeleteUser(string userName)
{
try
{
Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(userName, true);
user.Delete();
}
catch (Exception ex)
{
Sitecore.Diagnostics.Log.Error(string.Format("Error in Client.Project.Security.UserMaintenance (DeleteUser): Message: {0}; Source:{1}", ex.Message, ex.Source), this);
}
}
因此,在迭代要删除的用户名时,您只需调用此方法。根据您将运行该代码的凭据,您可能需要使用SecurityDisabler将其包装以省略删除操作的权限检查:
using (new SecurityDisabler())
{
// you code to delete here within using block
}
希望这有帮助!