我需要有一个RESTful API,可以从MVC5 Web应用程序调用该API,以便最初仅对本地sql服务器进行简单的身份验证/授权。我需要能够将登录凭据从Web应用传递到api以获取标头令牌等。然后,我需要能够检查令牌中是否存在任何将数据拉回或将数据保存回db的请求。我现在在这里使用教程示例应用程序,直到我了解其功能为止。
Web端只是一个带有按钮的表单,还有一些jquery来捕获被单击的提交按钮:
$(document).ready(function () {
var register = function() {
var dataa = {
Email: "[email protected]",
Password: "password",
ConfirmPassword: "password"
};
$.ajax({
type: 'POST',
url: 'api/Account/Register',
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(dataa)
});
return false;
}
$('#btnRegister').click(register);
});
然后是api本身的控制器:
[Authorize]
[RoutePrefix("api/Account")]
public class AccountController : ApiController
{
[AllowAnonymous]
[Route("Register")]
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
if (!result.Succeeded)
{
return GetErrorResult(result);
}
return Ok();
}
}
现在,当我尝试单击它时,它给我一个404错误。
WebAPI上的身份验证基于基于令牌的OAuth身份验证。
有一个身份验证URL(//默认创建的项目的令牌),当您使用用户名和密码向该URL发出POST请求时,会得到一个令牌作为响应。您的客户端应用程序应存储此令牌,并将其附加到每个请求中,以便获得授权。
在后台,此令牌生成和令牌识别过程由连接到您的应用程序管道的OWin组件提供。您可以研究StartUp.Auth.cs
这些组件的初始化。
您的登录表单没有什么特别的。它将仅将用户名和密码发布到身份验证URL。
在客户端上存储令牌的方式可能会因您的设计而异。存储令牌的最优选方法是使用Cookie或Javascript中的特定令牌存储。
您可以查看本教程中的示例和基础知识讨论。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句