关于asp.net mvc AuthorizeAttribute的问题

问题描述

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

我碰到的问题是:如果界面上是ajax请求的,这个方法就行不通了,如果是自己写的ajax请求,如可以根据返回值进行跳转,但在View中,我们经常用到第三方的一些组件,比如数据列表等,他们把ajax请求已封装好,只需要提供URL,这时候我们无法对返回值进行判断,这种情况,大家是怎么处理的?

解决方案

解决方案二:
身份认证+权限管理。认证在登录的时候做,合法用户就进来,进来以后根据身份所属的权限,分配操作(如增删查改)。没有操作权限的功能就不提供。
解决方案三:
引用楼主liao_ken的回复:

他们把ajax请求已封装好,只需要提供URL,

url可以有参数,这是规范的http请求方式。那么url中就可以提交你的前端获得的“会话授权passport(或者叫token)”。用了一点asp.net,不应该连基本的httpget/post都不会处理了。
解决方案四:
事实上,对于这种数据/功能服务的接口应用方式,那么服务器端所谓的mvc完全就是荒唐可笑的了。你的服务器端用一个轻量级的ashx则可以直接承载标准化的http请求,例如可以通过Request.Form[....]获取post参数,可以通过Request.QueryString[....]获取get参数,可以通过newStreamReader(Request.Request.InputStream).ReadToEnd()获得以文本消息体方式提供的整个参数(例如以一个任意嵌套层的复杂的json对象)。这就是基本的http服务。asp.net程序要回归“简单一般程序”的编程。
解决方案五:
你可以把ajax封装一下,然后在这个权限类里面过滤ajax请求过来的方法,如果是ajax请求,判断用户登录信息是否存在,不存在的话,则返回一个错误码,这个错误码在你封装的ajax的error方法里处理

时间: 2024-09-27 17:35:53

关于asp.net mvc AuthorizeAttribute的问题的相关文章

asp.net MVC AuthorizeAttribute 权限验证问题

问题描述 为什么上面的代码执行完毕后user登录状态还是没登录呢Name还是空登录状态还是FALSE是代码错了吗//FormsAuthenticationTicketauthTicket=newFormsAuthenticationTicket(//1,//"userID=5",//DateTime.Now,//DateTime.Now.AddMinutes(20),//false,//"admin"//写入用户角色//);//stringencryptedTick

在 ASP.NET MVC 中使用 HTTPS

某些安全性较高的网页,如网上支付或用户登陆页面,可能会使用到https(SSL/TLS)来提高安全性.本文介绍了如何在ASP.NET MVC中强制某action使用https和如何进行向https页面的跳转. 我们先实现强制一个action使用https.这里写了一个RequireHttpsAttribute,它的作用是将非https连接转换成https连接,这样所有使用了RequireHttps这个filter的controller都会强制使用https连接.   1 using System

认识ASP.NET MVC的5种AuthorizationFilter

在总体介绍了筛选器及其提供机制(<深入探讨ASP.NET MVC的筛选器>)之后,我们按照执行的先后顺序对四种不同的筛选器进行单独介绍,首先来介绍最先执行的AuthorizationFilter.从命名来看,AuthorizationFilter用于完成授权相关的工作,所以它应该在Action方法被调用之前执行才能起到授权的作用.不仅限于授权,如果我们希望目标Action方法被调用之前中断执行的流程"做点什么",都可以以AuthorizationFilter的形式来实现.

asp.net MVC 中的过滤器 ,一个路径设置对应一个过滤器类的对象吗

问题描述 asp.net MVC 中的过滤器 ,一个路径设置对应一个过滤器类的对象吗 asp.net MVC 中的过滤器 ,一个路径设置对应一个过滤器类的对象吗 .还是多个路由对应一个过滤器对象.有没有大神给讲解下路由和过滤器的对应关系代码如下:控制器代码: [CustAuthorize(""list"")] [Route(""list"")] public ActionResult List() { return View(

ASP.NET MVC 页面有登陆验证,当验证成功后怎样跳转回我之前输入的URL

问题描述 ASP.NET MVC 页面有登陆验证,当验证成功后怎样跳转回我之前输入的URL 我写了一个Basecontroller ``` public class BaseController : Controller { // // GET: /Base/ protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext)

包含在ASP.NET MVC中的过滤器

在深入研究如何编写过滤器之前,首先看看包含在ASP.NET MVC中的过滤器. ASP.NET MVC包括了如下3种即开即用的动作过滤器: Authorize:该过滤器用于限制对控制器或控制器动作的访问. HandleError:该过滤器用来指定一个处理异常的动作,这个异常是从动作方法的内部抛出的. OutputCache:该过滤器用来为动作方法提供输出的缓存. 接下来将依次深入讨论这3个过滤器. 1  Authorize AuthorizeAttribute是包含在ASP.NET MVC中默认

ASP.NET MVC Filters 4种默认过滤器的使用【附示例】

原文:ASP.NET MVC Filters 4种默认过滤器的使用[附示例] 过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响应内容,只响应特定内容给那些有特定权限的用户,过滤器理论上有以下功能: 判断登录与否或用户权限 决策输出缓存 防盗链 防蜘蛛 本地化与国际化设置 实现动态Action(做权限管理系统的好东西) 先来看一个简单的例子:新建一个AuthFiltersController,里面有两个Action pub

了解ASP.NET MVC几种ActionResult的本质:HttpStatusCodeResult &amp; RedirectResult/RedirectToRouteResult

在本系列的最后一篇,我们来讨论最后三个ActionResult:HttpStatusCodeResult.RedirectResult和RedirectToRouteResult .第一个用于实现针对某个HTTP状态的响应,而后两个用于实现重定向.至于重定向,又分为"暂时重定向"和"永久重定向",按照响应状态,又称"302重定向"和"301重定向".[本文已经同步到<How ASP.NET MVC Works?>中

返璞归真 asp.net mvc (13) - asp.net mvc 5.0 新特性

原文:返璞归真 asp.net mvc (13) - asp.net mvc 5.0 新特性 [索引页][源码下载] 返璞归真 asp.net mvc (13) - asp.net mvc 5.0 新特性 作者:webabcd 介绍asp.net mvc 之 asp.net mvc 5.0 新特性 MVC5, WebAPI2(Attribute Routing, Cross Origin Request Sharing, OData), SignalR, SPA(Single Page Appl