Я пытаюсь создать собственный атрибут AuthorizeAttribute, поэтому в моем проекте Core (библиотека классов) у меня есть этот код:
using System;
using System.Web;
using System.Web.Mvc;
using IVC.Core.Web;
using System.Linq;
namespace IVC.Core.Attributes
{
public class TimeShareAuthorizeAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if(!httpContext.Request.IsAuthenticated)
return false;
var rolesProvider = System.Web.Security.Roles.Providers["TimeShareRoleProvider"];
string[] roles = rolesProvider.GetRolesForUser(httpContext.User.Identity.Name);
if(roles.Contains(Website.Roles.RegisteredClient, StringComparer.OrdinalIgnoreCase))
{
return true;
}
return false;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectResult("/TimeShare/Account/LogOn");
base.HandleUnauthorizedRequest(filterContext);
}
}
}
Когда я пытаюсь построить эту штуку, я получаю эту ошибку: Ошибка 2 «IVC.Core.Attributes.TimeShareAuthorizeAttribute.AuthorizeCore (System.Web.HttpContextBase)»: не найдено подходящего метода для переопределения ...
Я что-то упустил? Я искал повсюду, но каждый сайт, который я могу найти, просто говорит мне делать именно то, что я делал здесь. Кстати, я использую mvc2.
- Отредактировано для добавления: если я перемещу класс в проект mvc в том же решении, ошибки компилятора не будет.
System.Web.Mvc
вы ссылались? - person Darin Dimitrov   schedule 16.08.2010HandleUnauthorizedRequest
возвращался к другому действию, вы не можете вызватьbase.HandleUnauthorizedRequest(filterContext)
- person mateuscb   schedule 07.10.2011System.Web.Mvc
, а неSystem.Web.Http
- person Timeless   schedule 18.07.2014