57 lines
1.4 KiB
C#
57 lines
1.4 KiB
C#
//using Microsoft.AspNetCore.Mvc;
|
|
//using Microsoft.AspNetCore.Mvc.Filters;
|
|
//using System;
|
|
//using System.Threading.Tasks;
|
|
//using zero.Core.Api;
|
|
//using zero.Web.Models;
|
|
|
|
//namespace zero.Web.Filters
|
|
//{
|
|
// public class VerifyTokenAttribute : TypeFilterAttribute
|
|
// {
|
|
// public VerifyTokenAttribute(string key = "model") : base(typeof(VerifyTokenAttributeImpl))
|
|
// {
|
|
// Arguments = new object[] { key };
|
|
// }
|
|
|
|
|
|
// private class VerifyTokenAttributeImpl : IAsyncActionFilter
|
|
// {
|
|
// IToken token;
|
|
// string key;
|
|
|
|
|
|
// public VerifyTokenAttributeImpl(IToken token, string key)
|
|
// {
|
|
// this.token = token;
|
|
// this.key = key;
|
|
// }
|
|
|
|
|
|
// public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
|
|
// {
|
|
// if (context.ActionArguments.ContainsKey(key))
|
|
// {
|
|
// object argument = context.ActionArguments[key];
|
|
|
|
// if (argument is ObsoleteEditModel)
|
|
// {
|
|
// ObsoleteEditModel model = (argument as ObsoleteEditModel);
|
|
// string tokenId = model.Meta?.Token;
|
|
|
|
// bool isVerified = await token.Verify(model.Id, tokenId);
|
|
|
|
// if (!isVerified)
|
|
// {
|
|
// context.Result = new StatusCodeResult(409);
|
|
// return;
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// await next();
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|