创建一个站点核心管理员网站

时间:2015-10-14 18:20:31

标签: sitecore sitecore8 sitecore-mvc

这里有一个sitecore新手。我们有一个使用Sitecore 8构建的现有网站。它位于我们的生产环境中。我最近加入了公司,我的后台是后端.NET开发。我被要求编写一个实用程序模块,允许我们删除符合特定条件的注册用户。该网站提供用户注册的能力,并且注册用户存储在核心数据库中。我最初的想法是直接反对数据库,但很快就知道存储的数据是序列化的。我还考虑过编写一个c#控制台应用程序来执行此操作,但似乎有很多配置/设置步骤可以执行此操作,并且从Web应用程序执行此操作会更好。有没有人有关于如何设置一个简单的实用程序Web应用程序来连接到现有Sitecore数据库的任何提示?我希望我会被要求在未来添加更多功能/功能。

2 个答案:

答案 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
}

希望这有帮助!