Security Disabler 中的 Sitecore 权限
Sitecore permissions within Security Disabler
如果您运行正在使用安全禁用程序编写代码,是否可以在仍在使用 SecurityDisabler 的情况下重新启用安全功能?
我的问题是我需要测试用户的权限,但如果您在 SecurityDisabler 中并使用 UserSwitcher 来测试权限。它总是说他们有权限。所以我希望重新启用安全性来测试。
还有一点是,当项目进入工作箱时执行代码,Sitecore 似乎 运行 所有这些代码都使用 Disabler 自动执行,这很有意义,但很难测试权限。
这是在 Sitecore 6.4.1 上。
可以在using SecurityDisabler scope
里面使用SecurityStateSwitcher
,例如:
Item item = Sitecore.Context.Database.GetItem("/sitecore/system");
var canAnonymousRead = item.Security.CanWrite(Sitecore.Context.User); // returns false
using (new SecurityDisabler())
{
canAnonymousRead = item.Security.CanWrite(Sitecore.Context.User); // returns true
using (new SecurityStateSwitcher(SecurityState.Enabled))
{
canAnonymousRead = item.Security.CanWrite(Sitecore.Context.User); // returns false again
}
}
SecurityStateSwitcher
是 SecurityDisabler
的基础 class(见下文)所以您在上面看到的是 "resetting" 安全检查返回 [=16= 的方法]模式。
public class SecurityDisabler : SecurityStateSwitcher
{
public SecurityDisabler : base (SecurityState.Disabled) {}
}
如果您运行正在使用安全禁用程序编写代码,是否可以在仍在使用 SecurityDisabler 的情况下重新启用安全功能?
我的问题是我需要测试用户的权限,但如果您在 SecurityDisabler 中并使用 UserSwitcher 来测试权限。它总是说他们有权限。所以我希望重新启用安全性来测试。
还有一点是,当项目进入工作箱时执行代码,Sitecore 似乎 运行 所有这些代码都使用 Disabler 自动执行,这很有意义,但很难测试权限。
这是在 Sitecore 6.4.1 上。
可以在using SecurityDisabler scope
里面使用SecurityStateSwitcher
,例如:
Item item = Sitecore.Context.Database.GetItem("/sitecore/system");
var canAnonymousRead = item.Security.CanWrite(Sitecore.Context.User); // returns false
using (new SecurityDisabler())
{
canAnonymousRead = item.Security.CanWrite(Sitecore.Context.User); // returns true
using (new SecurityStateSwitcher(SecurityState.Enabled))
{
canAnonymousRead = item.Security.CanWrite(Sitecore.Context.User); // returns false again
}
}
SecurityStateSwitcher
是 SecurityDisabler
的基础 class(见下文)所以您在上面看到的是 "resetting" 安全检查返回 [=16= 的方法]模式。
public class SecurityDisabler : SecurityStateSwitcher
{
public SecurityDisabler : base (SecurityState.Disabled) {}
}