как выкинуть ошибку о несоответствии роли пользователя? - PullRequest
2 голосов
/ 06 января 2012

Если я настрою в web.config такой код:

<location path="SomeFolder/SimePage.aspx">
    <system.web>
        <authorization>
            <allow roles="Role1" />
            <allow roles="Role2" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>

И когда пользователь с неправильной ролью заходит на SomeFolder / SimePage.aspx, он видит страницу входа. Но как я могу выдать пользовательскую ошибку, которая сообщит ему о его неправильной роли?

1 Ответ

1 голос
/ 24 февраля 2012

Сначала создайте пользовательскую страницу ошибки с подходящим сообщением, уведомляющим пользователя о его / ее неправильной роли.Затем откройте код позади страницы, которую вы хотите ограничить, и в конечном итоге отобразите пользовательскую ошибку, выберите События страницы и событие Загрузка.Когда вы находитесь в защищенной подстранице Page_Load, используйте следующий код:

If Not (User.IsInRole("Role1") Or User.IsInRole("Role2")) Then
    Response.Redirect("Path/To/Folder/CustomError.aspx")
End If

Теперь каждый раз, когда пользователь не окажется в одной из этих ролей, он / она получит пользовательскую страницу ошибки.

Надеюсь, это полезно.

...