Права пользователя в разрешениях карты сайта в веб-формах asp.net - PullRequest
2 голосов
/ 24 октября 2019

У меня есть старый сложный проект, который включает в себя роли пользователей. В файле 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. Может быть, некоторые из вас знают что-нибудь о моей проблеме?

1 Ответ

1 голос
/ 24 октября 2019

Скорее всего, в проекте реализован пользовательский поставщик карты сайта, который наследуется от класса SiteMapProvider .

Возможно, вы захотите найти класс пользовательского провайдера (посмотрите в папке App_Code или web.config для всех добавленных провайдеров карты сайта) и взгляните на переопределенные методы, чтобы узнать, как вашСобственный форматированный файл .sitemap анализируется.

Таким образом, вы сможете понять значение свойства rightsAny.

...