Here, I will explain how to maintain security in webapi
Step : 1 Create a method for validate loginname and tokenkey. if exists then return true otherwise return false.
Step : 2 add a class, which is used as Authorization filter. The class BasicAuthenticationAttribute inherits from BasicAuthenticationAttribute abstarct class.
Step : 3 Now we need to register authorization filter. we can register at controller level.
Step: 4 Call Web API using AJAX request.
Step : 1 Create a method for validate loginname and tokenkey. if exists then return true otherwise return false.
public static bool Vaidatecredentials(string loginname, string tokenkey) { // Check if it is valid credential if(true)//Check login name and token key exists in DB(loginname, password)) { return true; } else { return false; } }
Step : 2 add a class, which is used as Authorization filter. The class BasicAuthenticationAttribute inherits from BasicAuthenticationAttribute abstarct class.
public class BasicAuthenticationAttribute : AuthorizationFilterAttribute { public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext) { if (actionContext.Request.Headers.Authorization == null) { actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized); } else { // accept header parameters string Parameters = actionContext.Request.Headers.Authorization.Parameter; // Gets loginname and tokenkey string loginname = Parameters.Split(':')[0]; string tokenkey = Parameters.Split(':')[1]; // Validate loginname and tokenkey if (!Vaidatecredentials(loginname, tokenkey)) { // returns unauthorized error 401 actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized); } } base.OnAuthorization(actionContext); } }
Step : 3 Now we need to register authorization filter. we can register at controller level.
[BasicAuthentication] public class BlogController : ApiController { // Add your code here }
Step: 4 Call Web API using AJAX request.
$.ajax({ url: 'http://localhost:9000/api/dcs', type: "POST", contentType: "application/json", data: JSON.stringify(testdata), dataType: "json", headers: { 'Authorization' :'Basic ' + loginname + ':' + tokenkey) }, success: function (result) { }, error: function (err) { } });
Comments
Post a Comment