0
Я хочу создать фильтр действий, который проверяет, что пользователь создал какой-либо контент. Если они этого не сделают, я хотел бы предотвратить выполнение действия и вернуть ошибку.Предотвращение выполнения в действии Фильтр
Это то, что я до сих пор:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
using uQuiz.Domain.Abstract;
using uQuiz.WebUI.Helpers;
using Microsoft.AspNet.Identity;
using System.Net.Http;
using System.Net;
namespace uQuiz.WebUI.Controllers.Filters
{
/// <summary>
/// Determines whether the current logged in user has permission to edit the quiz requested
/// </summary>
public class CanEditQuiz : ActionFilterAttribute
{
IQuizEntities Context;
public CanEditQuiz()
{
}
public CanEditQuiz(IQuizEntities context)
{
this.Context = context;
}
public override void OnActionExecuting(HttpActionContext actionContext)
{
// Get the URL ID from the request
string urlId = actionContext.ModelState["urlId"].Value.ToString();
int userId = HttpContext.Current.User.Identity.GetUserId<int>();
if (!QuizHelper.IsQuizOwner(this.Context, urlId, userId))
{
// Prevent action executing
}
base.OnActionExecuting(actionContext);
}
}
}
Я видел other questions упоминая установить Result
к null
, но когда я отменяю метод OnActionExecuting
имеет HttpActionContext
и не ActionExecutingContext
по какой-то причине?
Как предотвратить действие?
Спасибо, я изменил мои используя операторы и переопределение теперь правильно. – Luke