首页 新闻 会员 周边

如何关闭 .Net 中 Forms身份验证中的跳转错误提示页

0
悬赏园豆:10 [已解决问题] 解决于 2012-12-25 09:31

我在.Net Mvc 中 使用了 Ajax 请求服务端。但是当我Ajax请求在服务端我想返回一个状态吗 403给客户端。

但是这中间Forms验证他不会给我返回403,而是返回 302(跳转) 然后跳转到 登录页面(200)。

我想能不能关闭Forms遇到状态吗时 自动转向这个功能。让我想返回什么状态吗就返回什么。

rainrcn的主页 rainrcn | 初学一级 | 园豆:113
提问于:2012-12-24 17:10
< >
分享
最佳答案
0

用 HttpStatusCodeResult .

收获园豆:5
Launcher | 高人七级 |园豆:45045 | 2012-12-24 17:26

你确定可以? 我返回一个 HttpStatusCodeResult  ,code = 401的 他不会给我跳转?

rainrcn | 园豆:113 (初学一级) | 2012-12-24 17:29

显然401也是不行滴,不过还是谢谢你了。

rainrcn | 园豆:113 (初学一级) | 2012-12-25 09:32

@Rainr: Forms验证的重定向是没法更改的,你只能在 <forms loginUrl="~/Account/LogOn" timeout="2880" /> 中指定的重定向页面中返回 HttpStatusCodeResult (401),来让客户端知道访问此页面需要登录,你可以把 LogOn 修改为一个特定的 401 错误页面,比如:UnauthorizedUser.aspx.

Launcher | 园豆:45045 (高人七级) | 2012-12-25 09:39
其他回答(2)
0

表示没听明白你的意思

Rich.T | 园豆:3440 (老鸟四级) | 2012-12-24 17:12

就是用Forms身份验证时候如果遇到 401或者403 它会给你转至错误代码页面或者转至登录页面吧。我想关闭这个跳转功能。或者能自己写跳转代码。

支持(0) 反对(0) rainrcn | 园豆:113 (初学一级) | 2012-12-24 17:15

@Rainr: 

这个跳转你肯定有地方设置了呀

你可以关闭Forms认证,自己写判断

支持(0) 反对(0) Rich.T | 园豆:3440 (老鸟四级) | 2012-12-24 17:23

@Rich.T: 

private static void onAuthorizing(AuthorizationContext authorizationContext, AuthorizingFilterAttribute authorizingFilterAttribute)
{
if (authorizingFilterAttribute.IsAuthorize)
{
if (!authorizationContext.HttpContext.User.Identity.IsAuthenticated)
{
authorizationContext.HttpContext.Response.StatusCode = 401;

 

这是我的代码 。我是在MVC Filter中设置的状态吗 。那么我前台想接收到 stateCode=401这样的错误。科室 forms自动给我跳转了。

支持(0) 反对(0) rainrcn | 园豆:113 (初学一级) | 2012-12-24 17:29
0

要是我就直接关闭forms验证

收获园豆:5
chenping2008 | 园豆:9836 (大侠五级) | 2012-12-24 17:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册