1
任何人都可以告诉我为什么我无法在我创建的新类的断点上处理WebApi发布请求?下面是我为装修新的类和方法的代码与类属性无法在AuthorizeAttribute类上创建断点
namespace MercuryUserWeb.Core.Authorization {
public class ClientUserApi : System.Web.Http.AuthorizeAttribute
{
public void OnAuthorization(AuthorizationContext filterContext)
{
WebRequestState webRequestState = ContainerHome.Container.Resolve<WebRequestState>();
ActionDescriptor actionDescriptor = filterContext.ActionDescriptor;
if (actionDescriptor.IsDefined(typeof(StaffUserAuthorizeAttribute), true))
return;
if (!webRequestState.IsAuthenticated || webRequestState.ClientUser == null)
{
filterContext.Result = new HttpUnauthorizedResult();
return; // 401, always show log-in page
}
}
}
}
控制器动作
namespace MercuryUserWeb.Areas.JApi.Controllers{
[ClientUserApi]
public class ClientViewController: ApiController, IJApiController
{
[System.Web.Http.HttpPost]
[ClientUserApi]
public ActionResult assignViews(ClientViewModel model)
{
string[] clientViewIdsArray = model.selectedViewsForClient.Split(',');
IEnumerable<long> parsedClientViewIdArray = clientViewIdsArray.Select(long.Parse);
List<long> clientViewsIdList = parsedClientViewIdArray.ToList();
string[] volPoolIdArray = model.volPoolIds.Split(',');
IEnumerable<long> parsedIdArray = volPoolIdArray.Select(long.Parse);
List<long> volPoolIdList = parsedIdArray.ToList();
var clientId = clientApiPrincipal.ClientUser.ClientId;
clientViewService.assignViews(clientViewsIdList, volPoolIdList, clientId);
return null;
}
谢谢。现在就试试这个。 –
谢谢。这工作。虽然我仍然获得WebRequestState的空值。不知道为什么.... –