嗨 我使用多个站点开发应用程序,每个站点都有自己的Extranet,而且这些工作都非常精美,使用Sitecore 6.4。Sitecore外联网管理员?
现在我需要每个站点的编辑(而不是管理员)能够创建只能访问连接到站点的外部网的外部网用户,这甚至有可能吗?
基本上我寻找的结构是这样的:
Sitecore的\编辑器(本地外网管理员)
外网\用户
嗨 我使用多个站点开发应用程序,每个站点都有自己的Extranet,而且这些工作都非常精美,使用Sitecore 6.4。Sitecore外联网管理员?
现在我需要每个站点的编辑(而不是管理员)能够创建只能访问连接到站点的外部网的外部网用户,这甚至有可能吗?
基本上我寻找的结构是这样的:
Sitecore的\编辑器(本地外网管理员)
外网\用户
我想你可以把外联网作用,为你们每一个人“外联网”,例如。 Site1Admin。
然后创建一个页面,使他们能够创建一个用户,为该用户提供所需的基本角色。
这是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来完成。功能,但我会给这个镜头。 – 2011-03-31 07:09:17
我只想让Sitecore用户在管理员或“Sitecore \ Sitecore客户帐户管理”角色中进行检查。 对于外联网用户,我假设您必须制作一些自定义代码,以允许Extranet用户创建其他用户。 或者你可以试着问问Sitecore https://support.sitecore.net/helpdesk/Default.aspx – Holger 2011-03-31 07:17:59
是的,它似乎工作我要去用它。 – 2011-03-31 08:11:22
你是什么意思,每个人都有“自己的外联网”?如同一个外联网站点,或只是一组外联网用户? – 2011-03-30 13:35:37
他们有他们自己的外部网站 – 2011-03-31 07:05:04