【发布时间】:2016-10-04 14:06:29
【问题描述】:
一段时间以来,我对 Authorization 进行了一些干预,发现一些页面可以帮助我覆盖默认方法。但是,似乎我无法使该属性起作用。我使用 Visual Studio 2013 调试我的项目,但它仍然没有在重新定义 Authorize 方法的断点处停止。如果 Web 服务在将 [Authorize] 放置在类或什至单个方法之后工作,这将不是问题。我已经尝试了所有这些,但似乎它返回的所有内容都是 401 Unauthorized。它甚至也没有进入所需的 Web 服务。以下是一些示例来解释我的问题:
[Authorize]
[RoutePrefix("api/MyWS")]
public class MyWSController : ApiController
{
private Test_UnitOfWork unitOfWork = new Test_UnitOfWork();
[Route("Get"), HttpGet]
public IEnumerable<MyWS> Get()
{
return unitOfWork.MyWSRepository.Get().OrderBy(s => s.Name);
}
重新定义 OnAuthorization 方法
public class TokenValidationAttribute : System.Web.Http.AuthorizeAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{ ...
控制器调用网络服务
MyWSlist = client.GetSync<IList<MyWS>>("MyWS");
我想知道我在这里做错了什么,因为每当我尝试调试我的项目时,我似乎根本无法输入重写的代码,它只会返回未经授权的错误。我也尝试过重写其他方法,但没有骰子。 问候
【问题讨论】:
-
默认情况下不能将断点添加到 Authorize 属性,但请参阅How can I override the Authorize attribute so I can put a breakpoint on it
标签: c# api asp.net-web-api authorization