Настройка Авторизация Mvc3 Ошибка - PullRequest
0 голосов
/ 05 августа 2011

Я пытаюсь настроить авторизацию в MVC 3. В контроллере дома я устанавливаю роль, чтобы быть ...

Session["role"] = "Admin";

Я получаю ошибку на

SiteRoles role = (SiteRoles)httpContext.Session["role"]; 

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

Понятия не имею, что происходит.

protected override bool AuthorizeCore(HttpContextBase httpContext)
{
    if (httpContext == null)
        throw new ArgumentNullException("httpContext");

    string[] users = Users.Split(',');

    if (!httpContext.User.Identity.IsAuthenticated)
        return false;

    string role = (string)httpContext.Session["role"]; 

    if (Roles != 0 && ((Roles & role) != role))
        return false;

    return true;
}

1 Ответ

0 голосов
/ 05 августа 2011

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

string role = (string)httpContext.Session["role"]; 

Или, если вы хотите установить какой-то другой тип:

Session["role"] = SiteRoles.Admin;

и тогда вы сможете:

SiteRoles role = (SiteRoles)httpContext.Session["role"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...