日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WebApi的调用-3.Basic验证

發布時間:2023/12/6 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebApi的调用-3.Basic验证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

webapi里的特性

/// <summary>/// Basic驗證 /// </summary>/// <remarks>/// /// </remarks>public class BasicAuthorizeAttibute : AuthorizeAttribute{public override void OnAuthorization(HttpActionContext actionContext){var authorization = actionContext.Request.Headers.Authorization; //HTTP標頭的Authorization值//ActionDescriptor方法上,ActionDescriptor.ControllerDescriptor 類上//有[AllowAnonymousAttribute] 的情況下if (actionContext.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute>(true).Count != 0|| actionContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes<AllowAnonymousAttribute>(true).Count != 0){base.OnAuthorization(actionContext);}else if (authorization != null && authorization.Parameter != null){//用戶邏輯驗證if (ValidateTicket(authorization.Parameter)){base.IsAuthorized(actionContext);}else{this.HandleUnauthorizedRequest(actionContext);}}else{this.HandleUnauthorizedRequest(actionContext);}}/// <summary>/// 驗證用戶邏輯 /// </summary>/// <param name="encryptTicket" type="string">/// /// </param>/// private bool ValidateTicket(string encryptTicket){// var strTicket = FormsAuthentication.Decrypt(encryptTicket.Remove(encryptTicket.Length - 1).Remove(0, 1));var strTicket = FormsAuthentication.Decrypt(encryptTicket);return string.Equals(strTicket.UserData, string.Format("{0}&{1}", "admin", "123"));}}

獲取ticket

[AllowAnonymous][HttpGet]public HttpResponseMessage Login(string account, string password){Model.User user = new User();if (account == "admin" && password == "123"){FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(0, account, DateTime.Now,DateTime.Now.AddHours(1), true, string.Format("{0}&{1}", account, password),FormsAuthentication.FormsCookiePath);return Success(user = new User() { name = account, pass = password, ticket = FormsAuthentication.Encrypt(ticket) });}else{return Msg("登錄失敗");}}

MVC里面請求頭(后臺請求)

public string GetApi(string method, string queryString){var result = ApiHelper.Instance.RequestApi(method, queryString, GetApiHeader());return result;}private WebHeaderCollection GetApiHeader(){string key = string.Format(GlobalVar.UserTiketCacheKey);var result = CacheHelper.CacheReader(key);WebHeaderCollection header = new WebHeaderCollection();header.Add(HttpRequestHeader.Authorization, "BasicAuth " + result);return header;}

總結

以上是生活随笔為你收集整理的WebApi的调用-3.Basic验证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。