У меня есть старый сложный проект, который включает в себя роли пользователей. В файле Rights.sitemap у меня есть такой код:
<Page url="~/Account/Account.aspx" rightsAny="OwnPesonalDetailesView, OwnPasswordChange" />
<Page url="~/Account/PersonalData/PersonalData.aspx" rightsAny="OwnPersonalDataChange, OwnPersonalDataChange" />
<Page url="~/Account/PasswordChange/PasswordChange.aspx" rightsAny="OwnPasswordChange" />
<Page url="~/Account/LoginHistory/LoginHistory.aspx" />
Я пытаюсь понять, что означает тег 'rightsAny' в этом контексте. Я пытался гуглить, но безуспешно. Когда я crtl + F и ищу 'rightsAny', это происходит только в этом файле .sitemap.
Значения после тега 'rightsAny' относятся к RightNameValues.cs, образец кода которого приведен ниже:
public const string OwnPasswordChange = "OwnPasswordChange";
public const string OwnPersonalDataChange = "OwnPersonalDataChange";
public const string OwnPesonalDetailesView = "OwnPesonalDetailesView";
public const string PartnersActivate = "PartnersActivate";
Я могу использовать это право в контексте, как показано ниже:
if(Foo.Common.Application.AppContext.Current.Operator.HasRight(RightNameValues.OwnPasswordChange))
{
Label2.Text = "This user have rights to change password";
}
Но я перепробовал все комбинации установочной строки, например:
<Page url="~/Account/PasswordChange/PasswordChange.aspx"
rightsAny="OwnPasswordChange" />
, и я не вижу никаких изменений на сайте PasswordChange.aspx. Может быть, некоторые из вас знают что-нибудь о моей проблеме?