3

Sitecore 6では、既にログインしている仮想ユーザーのロールを変更できますか?

既にシステムにログインしている仮想ユーザーのロールを変更したいのですが、Sitecore がそれを無視しているようです。ロールをクリアして新しいロールを追加できますが、古いロールはすべてユーザーに関連付けられたままです。ユーザーを再ログインする必要があると思いますが、そうではありません。

virtualUser.RuntimeSettings.AddedRoles.Clear();
virtualUser.Roles.RemoveAll();
if (permissions != null && permissions.Any())
{
    foreach (var role in permissions.Where(d=>!string.IsNullOrEmpty(d.Type)))
    {
        string domainRole = string.Format("{0}\\{1}", "extranet", role.Type);
        if (SC.Security.Accounts.Role.Exists(domainRole))
        {
            virtualUser.RuntimeSettings.AddedRoles.Add(domainRole);
        }
    }
}
4

2 に答える 2

3

使用してみることができます

Sitecore.Caching.CacheManager.ClearSecurityCache(userName);

このメソッドは別のメソッドを呼び出します。

CacheManager.ClearUserProfileCache(userName);
CacheManager.ClearIsInRoleCache(userName);
CacheManager.ClearAccessResultCache(userName);

したがって、理論的には必要なことを行う必要がありますが、実際には確認していません。

于 2013-04-10T15:31:17.167 に答える