.net ajax 登录权限,ASP.NET:通过AJAX调用使用Bearer Token授权MVC Action

这是我在SO的第一篇文章 .

我有一个ASP.NET项目,它在后端使用Web API,使用承载令牌身份验证,使用PostMan完美运行 . 虽然,我在前端挣扎(SPA只使用jQuery) .

我想要的是能够使用附加的Bearer Token调用MVC Action并成功通过Identity User进行身份验证,这样我就可以获得下一个好处:

-Call MVC Action with [Authorize]属性 . 我想在服务器中处理身份验证和授权,而不是使用JavaScript . 它还将处理角色授权 .

调用MVC Action,它将实例化Api控制器并调用Api Action,从Api Actions响应创建ViewModel并生成局部视图 . 这将避免jQuery将数据插入DOM,因为MVC操作将返回带有数据的部分视图 .

使用从MVC Action传递的模型,使用Razor部分视图 . 它还允许我在部分视图上使用条件,因此如果具有管理员角色的用户请求它,我可以显示额外的内容 .

我已经读过MVC应该使用Cookie身份验证进行身份验证,我将如何实现这一目标?我的登录表单在提交时直接通过AJAX请求Bearer Token . 提前致谢 .

用于从给定 endpoints 获取HTML的JavaScript函数:

function getHTML(endPoint, callback) {

$.ajax({

//headers: { Authorization: 'Bearer ' + sessionStorage.getItem('accessToken') },

datatype: "text/html",

type: "GET",

url: endPoint,

cache: true,

success: function (result) {

callback(result);

}

});

调用上述函数的示例:

getHTML('/Entries/GetWeeklyReport', function (result) {

content.find("#loading").before(result);

});

示例MVC控制器,注意我GetUserId()返回null:

public PartialViewResult GetWeeklyReport()

{

//this returns null

var temp = User.Identity.GetUserId();

return PartialView("_WeeklyReport");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值