首页 / 知识
关于asp.net:绕过表单身份验证自动重定向到登录名,怎么办?
2023-04-13 16:14:00

Bypass Forms Authentication auto redirect to login, How to?我正在使用部署到iis6的asp.net-mvc编写应用程序。我正在使用表单身份验证。通常,当用户尝试未经适当授权访问资源时,我希望将他们重定向到登录页面。 FormsAuth对我来说很容易做到这一点。 问题:现在我有一个控制台应用程序正在访问的动作。什么是使此操作响应状态401而不是将请求重定向到登录页面的最快方法? 我希望控制台应用程序能够对此401 StatusCode做出反应,而不是透明的。我还想保留默认值,将未经授权的请求重定向到登录页面行为。 注意:作为测试,我将此添加到了global.asax中,它没有绕过表单身份验证:
@戴尔和安迪 我正在使用MVC预览4中提供的AuthorizeAttributeFilter。这将返回HttpUnauthorizedResult。此结果正确地将statusCode设置为401。据我所知,问题是asp.net正在拦截响应(因为其标记为401)并重定向到登录页面,而不仅仅是让它通过。我想绕过某些网址的拦截。 好吧,我解决了这个问题。我做了一个自定义的ActionResult(HttpForbiddenResult)和自定义的ActionFilter(NoFallBackAuthorize)。 为了避免重定向,HttpForbiddenResult用状态代码403标记响应。FormsAuthentication不会使用该代码捕获响应,因此有效地跳过了登录重定向。 NoFallBackAuthorize过滤器检查用户的授权是否类似于所包含的Authorize过滤器。区别在于访问被拒绝时它返回HttpForbiddenResult。 HttpForbiddenResult非常简单:
在FormsAuthenticationModule中似乎无法跳过登录页面重定向。
可能有点麻烦(甚至可能无法工作),但是在您的"登录"页面上查看是否 请记住,您仍然需要获取控制台应用程序以某种方式进行身份验证。您不会免费获得HTTP基本认证:您必须自己动手做,但是有很多实现。 我还没有使用预览版4中的AuthorizeAttribute。我自己动手了,因为自从第一个CTP开始就一直使用MVC框架。我快速看了一下反射器中的属性,它在内部做我上面提到的事情,除了它们使用401的十六进制等效项。我将需要进一步查找该调用,以了解在何处捕获了异常,因为可能是他们在进行重定向的地方。这是您将需要覆盖的功能。我不确定您是否可以这样做,但是找到后我会回发并给您解决,除非Haacked看到并亲自张贴。 您是否为该操作编写了自己的FormsAuth属性?如果是这样,则可以在OnActionExecuting方法中传递FilterExecutingContext。您可以使用它来传回401代码。
这应该工作。我不确定您是否编写了FormsAuth属性,还是从其他地方获取的。 我做了一些谷歌搜索,这是我想出的:
不知道它是否有效,我还没有测试过。无论哪种方式,都值得尝试,对吧? :) |
最新内容
相关内容
linux下用户权限命令?
linux下用户权限命令?,管理,系统,密码,地址,权限,时间,基础,信息,基本知识,工作,Linux用户以及权限相关常用命令总结sudo和su类似,有一些附加的linux用户名改名命令?
linux用户名改名命令?,系统,密码,命令,代码,名称,用户名,用户,终端,主机名,文件,linux下命令怎么修改用户名1、Linux系统中用户切换的命令为sulinux用户分组命令?
linux用户分组命令?,系统,命令,电脑,信息,时间,标准,资料,用户,文件,用户组,Linux命令行操作之sedsed命令行格式为:sed [-nefri] ‘command’linux命令改用户所属?
linux命令改用户所属?,系统,文件,名称,用户组,命令,用户,名录,基本知识,所有者,终端,linux修改用户属组命令1、打开自己的linux系统。接着打开linux系统用户组命令?
linux系统用户组命令?,系统,管理,密码,代码,用户组,用户,命令,邮箱,电脑,名称,Linux命令之用户组管理在Linux中,用户组是一种将一组用户聚合在linux用户退出命令行?
linux用户退出命令行?,状态,档案,标准,系统,命令,文件,模式,编辑,指令,主机,linux退出vi编辑命令先按ESC进入Command模式,然后输入“:wq”,回车就linux常用重定向命令?
linux常用重定向命令?,标准,信息,设备,系统,文件,命令,内容,符号,终端,脚本,linux输出重定向到文件命令1、语法:nohup Command [ Arg … ] [ &linux用户自定义命令?
linux用户自定义命令?,系统,时间,标准,软件,项目,电脑,服务,工具,基本知识,材料,如何创建linux命令”快捷方式”或”自定义1、使用命令ln创建linux用户组命令设置?
linux用户组命令设置?,管理,系统,密码,代码,电脑,用户组,用户,软件,新增,命令,linux怎么设置用户组1、首先我们需要在电脑上打开linux操作系统linux进入用户命令行?
linux进入用户命令行?,系统,地址,工作,服务,信息,命令,首页,电脑,密码,终端,Linux下如何进入MySQL命令行1、连接到本机上的MYSQL,一般可以直接linux用户用不了命令?
linux用户用不了命令?,系统,档案,不了,命令,网络,密码,信息,情况,用户,权限,linux疑问:普通用户的ifconfig命令无法执行,如何解决?1、建议这个linux新增用户组命令?
linux新增用户组命令?,系统,密码,新增,用户组,联系方式,软件,邮箱,工具,管理,用户,linux一条命令能创建多个用户组吗?创建用户命令useradd use