自定义属性属性的c#web api值

自定义属性属性的c#web api值,c#,asp.net-web-api,C#,Asp.net Web Api,目前我正在开发一个C#WebApi 我制作了自己的TokenAuthorizationAttribute,它检查“Authorization”头中的字符串是否与数据库中的字符串匹配。 这工作得很好,我可以用属性装饰控制器和方法,它可以工作 但是,现在我正在尝试编写一个使用传递的令牌的方法。当然,我可以再次读取标题,但我不想这样做,因为它需要时间(而且该方法必须快速工作)。我考虑过可能将令牌保存到TokenAuthorizationAttribute的属性中,但是如何在方法中获得它的值呢 以下是我

目前我正在开发一个C#WebApi

我制作了自己的TokenAuthorizationAttribute,它检查“Authorization”头中的字符串是否与数据库中的字符串匹配。 这工作得很好,我可以用属性装饰控制器和方法,它可以工作

但是,现在我正在尝试编写一个使用传递的令牌的方法。当然,我可以再次读取标题,但我不想这样做,因为它需要时间(而且该方法必须快速工作)。我考虑过可能将令牌保存到TokenAuthorizationAttribute的属性中,但是如何在方法中获得它的值呢

以下是我的属性代码:

    public class TokenAuthorizationAttribute : AuthorizationFilterAttribute {
    public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext) {

        public string Token {get; set;}

        IEnumerable<string> values;

        if (actionContext.Request.Headers.TryGetValues("Authorization", out values)) {
            string token = values.FirstOrDefault();
            string auth = String.Empty;

            SqlConnection conn = SqlService.OpenConnection();

            SqlCommand cmd = new SqlCommand("SELECT-Token-Statement", conn);
            auth = (string)cmd.ExecuteScalar();

            conn.Close();

            if (!string.IsNullOrEmpty(auth)) {
                Token = auth;
                base.OnAuthorization(actionContext);
            }
            else {
                actionContext.Response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized) {
                    ReasonPhrase = "Wrong Token"
                };
            }
        }
        else{
            actionContext.Response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized){
                ReasonPhrase = "Missing Token"

我做了一个小项目,在WebApi2上使用JsonWebTokens进行授权。也许它对你有用…谢谢你的帮助,在阅读你的代码时我有一些好主意。
[TokenAuthorization]
public static void MyMethod(string value) {
     string token = "How do i get the Token?";
}