Расширение AuthorizeAttribute для .net MVC ... две проблемы / вопросы - PullRequest
1 голос
/ 11 января 2010

Мой первый вопрос: куда я могу поместить это пользовательское расширение, чтобы оно могло вызываться, а не по умолчанию AuthorizeAttribute?

В настоящее время я создал новый проект, содержащий всю мою бизнес-логику в моем MVCрешение.У меня есть файл .cs в моем проекте логики, который содержит все мои классы безопасности.Я попытался добавить класс расширения к этому файлу и на моем контроллере, он видит класс просто отлично и intellisense не лает на меня, когда я добавляю атрибут, но когда я пытаюсь скомпилировать, я получаю ошибку, что тип или пространство именневозможно найти.Нужно ли размещать пользовательский атрибут где-то особенным для компиляции?

Второй вопрос ... может быть связан с первым: когда я пытаюсь переопределить метод AuthorizeCore из AuthorizeAttribute, я передаюв System.Web.HttpContextBase как httpcontext.По какой-то причине Visual Studio не может разрешить System.Web.HttpContextBase.Опять же, это может быть связано с тем, где я сохранил этот класс в своем решении.Или, возможно, мне нужно куда-нибудь импортировать dll, чтобы расширить это?

Пожалуйста, сообщите.

Ответы [ 2 ]

0 голосов
/ 08 декабря 2015

Это работает для меня, надеюсь, это поможет вам.

using System.Web.Mvc;

public class CustomAuthorize : AuthorizeAttribute
{

}

In controller

 [CustomAuthorize]
public class OrderController : Controller
{

}
0 голосов
/ 11 января 2010

Насколько мне известно, класс может быть в любом проекте библиотеки классов, если вы правильно ссылались на проект на своем веб-сайте. Возможно, вы захотите попробовать перекомпилировать проект - похоже, он может найти исходные файлы, но код отсутствует в DLL.

Возможно, вам нужно добавить ссылку на System.Web.Abstractions для вашего проекта. Хотя «базовые» классы находятся в пространстве имен System.Web, они находятся в другой библиотеке DLL.

...