相关疑难解决方法(0)

ASP.NET MVC - 如何在登录页面上显示未经授权的错误?

在我的ASP.NET MVC应用程序中,我有大多数控制器装饰

[Authorize(Roles="SomeGroup")]
Run Code Online (Sandbox Code Playgroud)

当用户无权访问某些内容时,会将其发送到"〜/ Login",这是我的帐户控制器上的"登录"操作.

如何确定用户因未获得授权而已到达登录页面,以便我能够显示相应的错误?

.net c# asp.net asp.net-mvc authorization

45
推荐指数
3
解决办法
3万
查看次数

ASP.NET MVC使用自定义角色提供程序重定向到访问被拒绝页面

我正在创建一个自定义角色提供程序,我设置了一个Authorize属性,在我的控制器中指定一个角色,它工作正常,如下所示:

[Authorize(Roles="SuperAdmin")]
public class SuperAdminController : Controller
...
Run Code Online (Sandbox Code Playgroud)

但是当用户无法访问此控制器时,他将被重定向到登录页面.如何将他重定向到"AcessDenied.aspx"页面?

asp.net-mvc asp.net-membership roleprovider

29
推荐指数
5
解决办法
4万
查看次数

如何显示Http 401结果的自定义错误页面?

我有一个具有Authorize属性的控制器,如下所示:

[Authorize(Roles = "Viewer")]
public class HomeController : Controller
{
   //...
}
Run Code Online (Sandbox Code Playgroud)

我的web.config有customErrors设置如下:

<customErrors mode="On">
      <error statusCode="401" redirect="notauthorized.html"/>
  </customErrors>
Run Code Online (Sandbox Code Playgroud)

当我尝试使用非授权角色在Home控制器上调用操作时,我只得到一个空白页面.我没有被重定向到自定义页面.有任何想法吗?

asp.net-mvc

11
推荐指数
2
解决办法
1万
查看次数

ASP.Net MVC授权操作过滤器

我试图了解在MVC Preview 4中使用Authorize [Authorize] Action Filter时错误处理的工作原理.

我有一个看起来像这样的动作:

[Authorize(Roles = "DOMAIN\\NOTAUTHORISED_ROLE" )]
[HandleError]
public ActionResult NeedAuthorisation()
{
    throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)

当我访问网址:时http://localhost:2197/testAuthorisation/NeedAuthorisation,我的浏览器中出现了一个空白页面.在Firebug中,我可以看到已发出请求并401 - Unauthorised返回了响应状态.但我没有被重定向或返回了customError.使用我授权的角色时,一切都按预期工作.

这是使用Windows身份验证.我正在编写一些代码来尝试Forms身份验证,看看我是否遇到了同样的问题.我已<customerrors mode="On"/>在testAuthorisation文件夹和Shared文件夹中设置并创建了错误页面.

asp.net asp.net-mvc

10
推荐指数
1
解决办法
3046
查看次数

获取空白页而不是401错误页面

我有一个ASP.NET MVC3应用程序与Windows身份验证部署到IIS6.当经过身份验证的用户单击他们无权查看的链接时,系统会提示他们按预期输入用户名和密码(在浏览器对话框中,而不是页面中).

但是,单击取消或输入三次无效凭据后,我看到一个空白页面,而不是看到401 Unauthorized页面.

查看Fiddler,点击取消后有三个请求/响应.以下是响应摘要和标题:

  1. ASP.NET Access被拒绝消息(401.2)

    HTTP/1.1 401未授权日期:星期五,2012年7月20日14:34:21 GMT服务器:Microsoft-IIS/6.0 WWW-身份验证:协商WWW-Authenticate:NTLM X-Powered-By:ASP.NET X-AspNet-版本: 4.0.30319 Cache-Control:private Content-Type:text/html; charset = utf-8内容长度:1701代理支持:基于会话的身份验证

  2. IIS您无权查看此页面(401.1)

    HTTP/1.1 401未经授权的内容长度:1539内容类型:text/html服务器:Microsoft-IIS/6.0 WWW-Authenticate:NTLM TlRMTVNTUAACAAAADAAMADgAAAAF ...(为简洁起见省略)X-Powered-By:ASP.NET日期:星期五,2012年7月20日14:34:21 GMT代理支持:基于会话的身份验证

  3. 空响应

    HTTP/1.1 401未授权日期:星期五,2012年7月20日14:34:21 GMT服务器:Microsoft-IIS/6.0 WWW-身份验证:协商WWW-Authenticate:NTLM X-Powered-By:ASP.NET X-AspNet-版本: 4.0.30319 X-AspNetMvc-Version:3.0 Cache-Control:private Content-Length:0代理支持:基于会话的身份验证

如何让它显示401错误页面?

更新1:

这是我的web.config错误部分.

<customErrors mode="RemoteOnly" defaultRedirect="~/Error" />
Run Code Online (Sandbox Code Playgroud)

我也在用HandleErrorAttribute.

我怀疑IIS正在返回空白页而不是ASP.NET,但我不确定如何证明这一点.

更新2:

这是有趣的.如果我刷新空白页面,我看到ASP.NET Access被拒绝消息.

asp.net iis iis-6

7
推荐指数
1
解决办法
4572
查看次数

拒绝访问后我自己的观点

我只为Admin创建了一个控制器,我添加:

[Authorize(Roles = "Admin")]
Run Code Online (Sandbox Code Playgroud)

在课前定义.当我尝试以管理员身份获取网站作为用户时,我被重定向到LogOn网站.如何将重定向更改为LogOn或向登录站点添加额外信息?

asp.net-mvc-3

2
推荐指数
1
解决办法
3186
查看次数