【问题标题】:Sitecore extranet admins?Sitecore 外联网管理员?
【发布时间】:2011-07-25 22:49:35
【问题描述】:

嗨 我正在开发具有多个站点的应用程序,每个站点都有自己的外联网,这一切都使用 Sitecore 6.4 运行良好。

现在我需要每个站点的编辑(而不是管理员)能够创建只能访问连接到该站点的 Extranet 的 Extranet 用户,这甚至可能吗?

基本上我正在寻找这样的结构:

Sitecore\Editor(本地外联网管理员)

外联网\用户

【问题讨论】:

  • 每个人都有“自己的外联网”是什么意思?是在外网网站中,还是只是一组外网用户?
  • 他们有自己的外联网站点

标签: sitecore sitecore6 extranet


【解决方案1】:

我认为您可以为每个“外联网”创建一个外联网角色,例如。站点 1 管理员。

然后制作一个页面,使他们能够创建用户,为该用户提供所需的基本角色。

这是 Sitecore 6.0 的代码,虽然它应该与 6.4 afaik 相同:

Sitecore.Security.Accounts.User user;
if (!Sitecore.Context.IsLoggedIn)
{
    string domainUser = Sitecore.Context.Domain.GetFullName("youruser");
    string txtPassword = "yourpass";
    string txtEmail = "youremail";

    if (Sitecore.Security.Accounts.User.Exists(domainUser))
        return;

    MembershipCreateStatus status;
    Membership.CreateUser(domainUser, txtPassword, txtEmail, "Never?", "Always!", true, out status);

    if (!status.Equals(MembershipCreateStatus.Success))
    {
        throw new MembershipCreateUserException(status.ToString());
    }       
    user = //something to load the user, probably in Sitecore.Security.Accounts.User
}
    var role = "extranet\\Site1User";   

    var roles = Roles.GetRolesForUser(); //this is probably only for the current context user
    if (!roles.Contains(role))
    {
        try
        {
            Roles.AddUsersToRole(new string[] { "youruser" }, role);
        }
        catch(System.Configuration.Provider.ProviderException)
        {
            // do nothing, just move on
        }

    }
}

这有点简单,是基于我尝试从一些工作代码中破解的一些代码,它创建了一个用户并让他登录,应该根据你正在做的事情进行调整,因为可能存在一些错误。

【讨论】:

  • 我有点希望避免这种情况,也许认为可以用 std.功能,但我会试一试。
  • 我只认为 Sitecore 用户具有管理员权限或具有“Sitecore\Sitecore 客户帐户管理”角色。对于外联网用户,我假设您必须编写一些自定义代码,以允许外联网用户创建其他用户。或者您可以尝试在support.sitecore.net/helpdesk/Default.aspx 上询问 Sitecore
猜你喜欢
  • 2013-03-01
  • 2018-10-09
  • 2013-10-22
  • 2017-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多