public HttpResponseMessage Delete([FromUri] string Username) { IEnumerable <string> values; this.Request.Headers.TryGetValues("ApiKey", out values); foreach (string v in values) { if (ud.CheckApi(v)) { ud.AddUserLogs("User Requested /user/removeuser", v); } } foreach (string v in values) { if (ud.CheckApiandUserName(v, Username)) { ud.DeleteUserApi(v); return(Request.CreateErrorResponse(HttpStatusCode.OK, "true")); } else { return(Request.CreateErrorResponse(HttpStatusCode.OK, "false")); } } return(Request.CreateErrorResponse(HttpStatusCode.OK, "false")); }
protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { // Task5 // TODO: Find if a header ‘ApiKey’ exists, and if it does, check the database to determine if the given API Key is valid // Then authorise the principle on the current thread using a claim, claimidentity and claimsprinciple UserDatabaseAccess userDatabaseAccess = new UserDatabaseAccess(); IEnumerable <string> values; request.Headers.TryGetValues("ApiKey", out values); if (values != null) { foreach (string v in values) { if (userDatabaseAccess.CheckApi(v)) { User user = userDatabaseAccess.CheckApiForUser(v); var claims = new List <Claim> { new Claim(ClaimTypes.Name, user.UserName, ClaimTypes.Role, user.UserRole.ToString()) }; var id = new ClaimsIdentity(claims, authenticationType: "ApiKey"); var principle = new ClaimsPrincipal(id); Thread.CurrentPrincipal = principle; } } } return(base.SendAsync(request, cancellationToken)); }
public HttpResponseMessage Get() { IEnumerable <string> values; this.Request.Headers.TryGetValues("ApiKey", out values); foreach (string v in values) { if (ud.CheckApi(v)) { ud.AddUserLogs("User Requested /user/removeuser", v); } } foreach (string v in values) { User user = ud.CheckApiForUser(v); return(Request.CreateErrorResponse(HttpStatusCode.OK, "Hello " + user.UserName)); } return(Request.CreateErrorResponse(HttpStatusCode.OK, "Hello")); }