Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如果属性在asp.net mvc中的另一个视图中失败,则重定向Authorize属性_Asp.net Mvc_Authorize Attribute - Fatal编程技术网

Asp.net mvc 如果属性在asp.net mvc中的另一个视图中失败,则重定向Authorize属性

Asp.net mvc 如果属性在asp.net mvc中的另一个视图中失败,则重定向Authorize属性,asp.net-mvc,authorize-attribute,Asp.net Mvc,Authorize Attribute,所以我有一个关于[Authorize]标签的问题。我需要一个用户有管理员的角色来访问某个视图。它工作得很好,只允许“管理员”而不是“用户”访问它。但每当用户访问时,它都会告诉我: Server Error in '/' Application. The resource cannot be found. Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have

所以我有一个关于
[Authorize]
标签的问题。我需要一个用户有管理员的角色来访问某个视图。它工作得很好,只允许“管理员”而不是“用户”访问它。但每当用户访问时,它都会告诉我:

Server Error in '/' Application.

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 

Requested URL: /Login.cshtml

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34009 
所以我的问题是,当用户访问时,我如何将他们重定向到另一个视图

这是我的索引控制器:

[Authorize(Users = "Admin")]
        public ActionResult Index()
        {
            var user = db.User.Include(u => u.UserRole);
            return View(user.ToList());
        }

您可以通过两种方式解决此问题:

  • 让匿名用户可以访问索引操作,并基于角色调用不同的函数
  • 创建自己的自定义授权属性(您可以找到一个示例)
  • 这两种方法都很好,没有明显的优势/劣势,因此您可以选择其中任何一种


    希望这有帮助。

    您似乎没有登录视图,在web.config中定义了当用户未经授权时要加载的页面,默认值是login.cshtml。因此我有一个登录视图(即login.cshtml,由用户控制器创建),它是web.config中autentication标记中的默认值吗?因此示例中的授权类是在models下创建的?不一定。您可以在任何地方创建它,只需将它链接到您的模块。e、 g.使用ApplicationXYZ.AuthorizationNameSpace.AuthClass;太棒了,所以我更接近了。现在,当用户尝试访问该页面时。url被重定向到“”,唯一的问题是出现了与我在主要问题中发布的相同的错误。(Unauthrized.cshtml位于我的共享文件夹中)您可以尝试直接访问此页面吗。如果您无法访问该页面,则表示您的路由存在问题。您如何重定向到Unauthorize.cshtml页面,它是否允许匿名访问?