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