0

我在 Sitecore 解决方案上设置了外联网。登录和访问外部网下方的项目在安全等方面工作正常。

但也有一些文件,只有登录到 Extranet 的用户才能访问。为此,我在媒体库的根目录中创建了一个名为Extranet. 我已经为此设置了安全性(从 中添加extranet\user并删除了read访问权限extranet\everyone)。我还检查了该字段中的inheritance选项。security

但是当我在这个文件夹下添加一个文件时,它看起来不像是继承了安全设置。虽然extranet\anonymous无法访问该项目,extranet\user但也不能。如果我明确设置文件的安全性并允许extranet\user,它就可以工作。

我会错过什么?

4

1 回答 1

1

问题在于访问冲突。您必须创建一个不同的角色,例如:extranet/registered 并授予对它的读取权限。登录后,在该登录用户上设置“extranet/registered”角色。关于如何设置角色的一些代码:

var loginUser = database.ValidateUserForLogin(userName.Trim(), password.Trim());
            if (loginUser == null) return false;

            User _user = AuthenticationManager.BuildVirtualUser(domainUser, true);

            if (_user != null)
            {
                AuthenticationManager.Login(_user);
                _user.RuntimeSettings.AddedRoles.Add(@"extranet\registered");
                _user.Profile.SetCustomProperty("UserId", loginUser .UserId.ToString());
            }

loginUser 是来自数据库的自定义对象。我正在使用 sitecore authenticationmanager(来自 sitecore.security 命名空间)。

试试我们的,让我知道它是怎么回事。

于 2012-07-16T15:27:23.457 回答