我的控制器装饰有:[BasicAuthentication] - 但是,放入断点并逐步执行代码,[BasicAuthentication]永远不会重定向到Auth.cs(在Filter文件夹中):
过滤\ Auth.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
using System.Text;
using System.Threading;
using System.Web;
using System.Web.Security;
namespace ebapi.Filter
{
public class BasicAuthenticationAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
因此覆盖OnActionExecuting永远不会执行 - 但我看不出我错过了什么。用[BasicAuthentication]修饰的我的控制器如下所示,但不调用我上面显示的Auth.cs:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using ebapi.Filter;
using ebapi.Models;
namespace ebapi.Controllers
{
public class GetBookingsController : ApiController
{
private GetBookingsContext db = new GetBookingsContext();
private ApiMembersContext dba = new ApiMembersContext();
// GET api/GetBookings/5
[BasicAuthentication]
public IEnumerable<GetBooking> GetBooking(long id)
{
感谢您的帮助,
标记
答案 0 :(得分:0)
如果这有帮助,我改变了
public class BasicAuthenticationAttribute name to: public class BasicAuthenticationV2Attribute
并将装饰改为:
[BasicAuthenticationV2]
无论出于何种原因,这再次启动了身份验证,并且没有任何问题。
我假设存在某种缓存,可能是从调用IP到API - 这意味着它会记住它已经过身份验证的某个人,并且不需要再次进行?
如果有人能证实我的想法,我会很感激。
谢谢,
标记