Asp.net 您能否为未经身份验证的用户授予对控制器/视图的访问权限

Asp.net 您能否为未经身份验证的用户授予对控制器/视图的访问权限,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我有一个使用asp.net身份验证的MVC 3应用程序。我刚刚创建了一个自定义错误控制器和几个未知错误和404的视图。当我登录到应用程序时,这可以正常工作,但是如果在登录期间发生内部服务器错误,我希望显示错误/未知视图。但是,我只是不断被重定向回登录,因为我没有经过身份验证 我已将“Views/Error”的位置路径添加到我的Web.config中,以允许所有用户访问,但我猜是控制器访问导致了重定向 在MVC中有什么方法可以允许这样做,或者我需要考虑另一种解决方案吗?只是不想在登录页面中添加一般

我有一个使用asp.net身份验证的MVC 3应用程序。我刚刚创建了一个自定义错误控制器和几个未知错误和404的视图。当我登录到应用程序时,这可以正常工作,但是如果在登录期间发生内部服务器错误,我希望显示错误/未知视图。但是,我只是不断被重定向回登录,因为我没有经过身份验证

我已将“Views/Error”的位置路径添加到我的Web.config中,以允许所有用户访问,但我猜是控制器访问导致了重定向


在MVC中有什么方法可以允许这样做,或者我需要考虑另一种解决方案吗?只是不想在登录页面中添加一般消息,因为这就是我的未知错误视图的用途。

我发现在控制器上使用
[Authorize]
属性更好。您可以在需要授权用户的控制器或视图上使用它。这样,每个人都可以访问您的错误控制器。

您是否尝试将位置部分添加到web.config文件中

url应该是错误页面的url。在location元素中,将授权指定为allow users=“*”

或者,将authorize属性添加到错误控制器或用户设置为“*”的操作中

不过你说得有点对。您需要更改有权访问错误控制器的用户。authorize属性和location元素都允许您这样做


Simon

我确实在我的控件上使用了此功能,但我需要的是未经身份验证(授权)的用户来访问我的控制器。目前asp.net身份验证正在启动,不允许我在此控制器上运行任何操作方法,因为没有用户登录。您是否在web配置中指定了如下内容:如果您使用[Authorize]属性,将不再需要此功能。哦,我明白了,把它处理掉,授权给我所有的控制器。不是两个都在一起,就是这样。我只使用[Authorize]属性。您仍应在web.config中设置身份验证(即使用表单身份验证、设置登录url等),但不应在web.config中进行授权,您应通过
[Authorize]
属性来处理。如果希望未经身份验证的用户访问某个操作,请不要使用
[Authorize]
属性对其进行修饰。如果使用
[Authroize]
属性装饰控制器,则控制器中的所有操作方法都需要对用户进行身份验证。