关于asp.net mvc AuthorizeAttribute的问题

liao_ken 2016-06-13 03:57:52
因为本人开发web比较少,请教一下大家,asp.net mvc中,我们用到AuthorizeAttribute进行判断用户是否登录,如果已经登录即跳到对应的Action,如果没有登录或者登录失效,即跳到登录页面,如:
filterContext.Result = new RedirectResult("/Account/LogOn")

我碰到的问题是:如果界面上是ajax请求的,这个方法就行不通了,如果是自己写的ajax请求,如可以根据返回值进行跳转,但在View中,我们经常用到第三方的一些组件,比如数据列表等,他们把ajax请求已封装好,只需要提供URL,这时候我们无法对返回值进行判断,这种情况,大家是怎么处理的?
...全文
214 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_30737699 2016-06-13
  • 打赏
  • 举报
回复
你可以把ajax封装一下,然后在这个权限类里面过滤ajax请求过来的方法,如果是ajax请求,判断用户登录信息是否存在,不存在的话,则返回一个错误码,这个错误码在你封装的ajax的error方法里处理
  • 打赏
  • 举报
回复
事实上,对于这种数据/功能服务的接口应用方式,那么服务器端所谓的 mvc 完全就是荒唐可笑的了。你的服务器端用一个轻量级的 ashx 则可以直接承载标准化的 http请求,例如可以通过 Request.Form[....] 获取 post 参数,可以通过 Request.QueryString[....] 获取 get 参数,可以通过 new StreamReader(Request.Request.InputStream).ReadToEnd() 获得以文本消息体方式提供的整个参数(例如以一个任意嵌套层的复杂的json对象)。 这就是基本的 http 服务。asp.net 程序要回归“简单一般程序”的编程。
  • 打赏
  • 举报
回复
引用 楼主 liao_ken 的回复:
他们把ajax请求已封装好,只需要提供URL,
url 可以有参数,这是规范的 http 请求方式。那么 url 中就可以提交你的前端获得的“会话授权 passport(或者叫 token)”。 用了一点 asp.net,不应该连基本的 http get/post 都不会处理了。
EdsionWang 2016-06-13
  • 打赏
  • 举报
回复
身份认证 + 权限管理。 认证在登录的时候做,合法用户就进来,进来以后根据身份所属的权限,分配操作(如增删查改)。没有操作权限的功能就不提供。

62,067

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧