We provide complete sharepoint solution like installation,development,deployment and configuration using tools like spfx,sharepoint designer,powershell and ms flow
Saturday, 22 December 2018
Wednesday, 28 November 2018
Update Request Digest Value in sharepoint without making any custom method
Update Request Digest Value in sharepoint without making any custom method ,use Sharepoint inbuilt function
setInterval(function() {
UpdateFormDigest(_spPageContextInfo.webServerRelativeUrl, _spFormDigestRefreshInterval);
}, 8 * 60000);
it will update the request digest value on every minutes.
Above function is referenced from "INIT.js"
setInterval(function() {
UpdateFormDigest(_spPageContextInfo.webServerRelativeUrl, _spFormDigestRefreshInterval);
}, 8 * 60000);
it will update the request digest value on every minutes.
Above function is referenced from "INIT.js"
Sunday, 7 October 2018
implement authentication on WEB API and consume with ajax Call
Below Steps to implement authentication
on WEB API and consume with ajax Call
1.
Add a class in model folder “WebApiSecurity”
and paste below code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebApiDemo.Models
{
public class WebApiSecurity
{
public static bool VaidateUser(string username, string password)
{
// Check
if it is valid credential
if (true)//CheckUserInDB(username,
password))
{
return true;
}
else
{
return false;
}
}
}
}
2.
Create another class for basic authorization “BasicAuthenticationAttribute” and
paste below code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http.Filters;
namespace WebApiDemo.Models
{
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
{
//
Gets header parameters
string authenticationString =
actionContext.Request.Headers.Authorization.Parameter;
string originalString = Encoding.UTF8.GetString(Convert.FromBase64String(authenticationString));
//
Gets username and password
string usrename = originalString.Split(':')[0];
string password = originalString.Split(':')[1];
//
Validate username and password
if (!WebApiSecurity.VaidateUser(usrename, password))
{
// returns unauthorized error
actionContext.Response =
actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
}
}
base.OnAuthorization(actionContext);
}
}
}
3.
Add Basic Authentication Attribute [BasicAuthentication] on Web API Method like below code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApiDemo.Models;
namespace WebApiDemo.Controllers
{
public class EmployeeController : ApiController
{
List<EmployeeDetail> emp = new List<EmployeeDetail>()
{
new EmployeeDetail {Id="1",Name="Mohd
Rizwan", City="Saharanpur" },
new EmployeeDetail {Id="2",Name="Mohd
Jabir", City="Delhi" },
new EmployeeDetail {Id="3",Name="Mohd
Waseem", City="Mumbai" }
};
[BasicAuthentication]
[HttpGet]
public IEnumerable<EmployeeDetail>
GetAllEmplyees()
{
return emp;
}
}
}
Below steps to consume API with Ajax
, Credential parameter like below code
function GetAllEmployees()
{
var
username="userName";
var
password="user@123";
var resturl =
"http://localhost:44739/api/Employee/";
resturl +=
"GetAllEmplyees";
$.ajax({
url:
resturl,
headers: {
'accept': 'application/json;odata=verbose',
'content-type': 'application/json;odata=verbose',
'Authorization'
:'Basic ' + btoa(username + ':' + password)
},
async:
false,
success:
function (data)
{
console.log(data)
}, eror:
function (data)
{
alert('error');
}
});
}
Saturday, 6 October 2018
Developing and Consuming WEB API
Below steps to Develop Web
API in Visual Studio
1.Create
Blank Asp.Net Web Application.
2.
Select empty project with Web API.
3.Add
a new Class in model as EmployeeDetail and properties as below and paste below
code for the same
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WebApiDemo.Models
{
public class EmployeeDetail
{
public string Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
}
}
4. Add New Item in Controller as Empty Web API
Controller and paste below code for the same.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebApiDemo.Models;
namespace WebApiDemo.Controllers
{
public class EmployeeController : ApiController
{
List<EmployeeDetail> emp = new List<EmployeeDetail>()
{
new EmployeeDetail {Id="1",Name="Mohd
Rizwan", City="Saharanpur" },
new EmployeeDetail {Id="2",Name="Mohd
Jabir", City="Delhi" },
new EmployeeDetail {Id="3",Name="Mohd
Waseem", City="Mumbai" }
};
[HttpGet]
public IEnumerable<EmployeeDetail> GetAllEmplyees()
{
return emp;
}
[HttpGet]
public IEnumerable<EmployeeDetail> GetEmployeeById([FromUri]string empid)
{
var empList = emp.Where(w => w.Id == empid).ToList();
return empList;
}
[System.Web.Http.AcceptVerbs("GET", "POST")]
[HttpPost]
public HttpResponseMessage AddNewEmployee(EmployeeDetail empd)
{
EmployeeDetail s = new EmployeeDetail();
s.Id = empd.Id;
s.Name = empd.Name;
s.City = empd.City;
emp.Add(s);
return Request.CreateResponse(HttpStatusCode.OK, emp);
}
[System.Web.Http.AcceptVerbs("GET", "PUT")]
[HttpPut]
public HttpResponseMessage UpdateEmployee(EmployeeDetail empd, [FromUri]string empid)
{
var emps = emp.Where(w => w.Id != empid).ToList();
EmployeeDetail s = new EmployeeDetail();
s.Id = empd.Id;
s.Name = empd.Name;
s.City = empd.City;
emps.Add(s);
return Request.CreateResponse(HttpStatusCode.OK, emps);
}
[System.Web.Http.AcceptVerbs("GET", "DELETE")]
[HttpDelete]
public HttpResponseMessage DeleteEmployee([FromUri]string empid)
{
var emps = emp.Where(w => w.Id != empid).ToList();
EmployeeDetail s = new EmployeeDetail();
return Request.CreateResponse(HttpStatusCode.OK, emps);
}
}
}
5.Change
WebApiConfig under App_Start folder to default response in JSON format and add
action after controller in webapiconfig paste below code for the same.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Formatting;
using System.Web.Http;
namespace WebApiDemo
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web
API configuration and services
config.Formatters.Clear();
config.Formatters.Add(new JsonMediaTypeFormatter());
// Web
API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional
}
);
}
}
}
How to Consume Web API in
jQuery
1. Create HTML page.
2. Add below code on HTML
page.
<!DOCTYPE
html>
<html>
<head>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function()
{
GetAllEmployees()//Load All Details by
default
$('#btnAdd').click(function () {
AddNewEmployee();
});
$('#btnUpdate').click(function () {
UPdateEmployeeDetails();
});
$('#btnDelete').click(function () {
DeleteEmployyeById();
});
$('#btnGetAll').click(function () {
GetAllEmployees();
});
$('#btnGetById').click(function () {
GetEmployeeById();
});
});
function GetAllEmployees()
{
var resturl =
"http://localhost:44739/api/Employee/";
resturl += "GetAllEmplyees";
$.ajax({
url: resturl,
headers: {
'accept':
'application/json;odata=verbose',
'content-type':
'application/json;odata=verbose'
},
async: false,
success: function (data)
{
GenerateHTMLTable(data);
console.log(data)
}, eror: function (data)
{
alert('error');
}
});
}
function GetEmployeeById()
{
var resturl = "http://localhost:44739/api/Employee/";
resturl += "GetEmployeeById?empid=" + $('#txtId').val();
$.ajax({
url: resturl,
headers: {
'accept':
'application/json;odata=verbose',
'content-type':
'application/json;odata=verbose'
},
async: false,
success: function (data)
{
GenerateHTMLTable(data);
console.log(data)
}, eror: function (data)
{
alert('error');
}
});
}
function AddNewEmployee()
{
var stringData= JSON.stringify({
'Id': '5',
'Name':'Salim',
'City':'MZN'
})
var resturl =
"http://localhost:44739/api/Employee/";
resturl += "AddNewEmployee";
$.ajax({
type:'POST',
url: resturl,
headers: {
'accept':
'application/json;odata=verbose',
'content-type':
'application/json;odata=verbose'
},
data: stringData,
async: false,
success: function (data)
{
GenerateHTMLTable(data);
console.log(data)
}, eror: function (data) {
alert('error');
}
});
}
function UPdateEmployeeDetails()
{
var stringData = JSON.stringify({
'Id': '5',
'Name':'Salim',
'City':'MZN'
})
var resturl = "http://localhost:44739/api/Employee/";
resturl += "UpdateEmployee?empid=" + $('#txtId').val();
$.ajax({
type: 'PUT',
url: resturl,
headers: {
'accept':
'application/json;odata=verbose',
'content-type':
'application/json;odata=verbose'
},
data:stringData,
async: false,
success: function (data)
{
GenerateHTMLTable(data);
console.log(data)
}, eror: function (data) {
alert('error');
}
});
}
function DeleteEmployyeById()
{
var resturl = "http://localhost:44739/api/Employee/";
resturl += "DeleteEmployee?empid=" + $('#txtId').val();
$.ajax({
type:'DELETE',
url: resturl,
headers: {
'accept':
'application/json;odata=verbose',
'content-type':
'application/json;odata=verbose'
},
async: false,
success: function (data)
{
GenerateHTMLTable(data);
console.log(data)
}, eror: function (data) {
alert('error');
}
});
}
function GenerateHTMLTable(data)
{
$('.itemCollection').html('');
if (data.length > 0)
{
for (var i = 0; i <data.length; i++)
{
$('.itemCollection').append("<tr><td>" +
data[i].Id + "</td><td>" + data[i].Name +
"</td><td>" + data[i].City + "</td></tr>");
}
}
}
</script>
</head>
<body>
<div>
<div><input
type="text" id="txtId" /></div>
<div><input
type="button" id="btnAdd" value="Add New"
/></div>
<div><input
type="button" id="btnUpdate" value="update"
/></div>
<div><input
type="button" id="btnDelete" value="Delete"
/></div>
<div><input
type="button" id="btnGetAll" value="GetAll"
/></div>
<div><input
type="button" id="btnGetById" value="Get By ID"
/></div>
<div></div>
</div>
<table width='500px'
style='border-collapse: collapse;border: 1px solid #1e7fb8' border='1'>
<thead><tr
style='background-color:
#1e7fb8;color:white;'><td>Id</td><td>Name</td><td>City</td></tr></thead>
<tbody
class="itemCollection"></tbody>
</table>
</body>
</html>
Note:- if you face any challenge in consuming API
Paste below
code in web.config file inside <system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
Subscribe to:
Posts (Atom)