Roles.IsUserInRole () в классе моей базы - PullRequest
0 голосов
/ 08 июня 2009

У меня есть базовая страница (унаследованная от System.Web.UI.Page и все мои страницы наследуются от этой базовой страницы) в моем веб-приложении .Net и на данный момент, если я добавлю следующие методы

protected void CheckAllowedRole(string UserName, List<string> AllowedRoles)
    {
        try
        {
            bool IsAllowed = false;
            foreach (string item in AllowedRoles)
            {
                if (Roles.IsUserInRole(UserName, item))
                    IsAllowed = true;
            }
            if (!IsAllowed)
                Response.Redirect("~/Members/Error.aspx", false);

        }
        catch (Exception err)
        {
            Response.Redirect("~/Members/Error.aspx", false);
        }
    }

по какой-то причине он не знает, что это за роль!?!? Вернуть. Я даже передаю имя пользователя в эти методы и до сих пор не работает.

Но если я возьму этот код и вставлю на свою страницу, которая унаследована от этой базовой страницы, будет работать хорошо (без проблем). Есть идеи? Существуют ли какие-либо ограничения на роли (или поставщика членства в базовом классе).

Спасибо

1 Ответ

0 голосов
/ 08 июня 2009

вместо предоставления имени пользователя, почему бы вам не попробовать это:

    protected void CheckAllowedRole(List<string> AllowedRoles)
    {
        try
        {
            if (!Page.User.Identity.IsAuthenticated)
                throw new Exception("Unauthenticated User");

            string name = Page.User.Identity.Name;

            bool IsAllowed = false;
            foreach (string item in AllowedRoles)
            {
                IsAllowed = Roles.IsUserInRole(name, item);
            }

            if (!IsAllowed)
                Response.Redirect("~/Members/Error.aspx", false);
        }
        catch (Exception err)
        {
            Response.Redirect("~/Members/Error.aspx", false);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...