在.NET中使用Authorize属性时出现未经授权的HTML错误401

本文关键字:授权 HTML 错误 NET Authorize 属性 | 更新日期: 2023-09-27 18:19:46

Iam在用户登录后使用authorize锁定控制器。用户保存在EF中,不使用角色或类似的东西。我阅读了authorize的文档,似乎我必须指定可以访问锁定控制器的用户或角色;

我有账户管理员;

    [Authorize]
    public ActionResult Index()
    {
        return View();
    }

当用户登录时,应该将用户重定向到此操作,该操作已用属性[Authorize]锁定,但不幸的是,我收到了此错误"Html error 401 unauthorized"。我的问题是:如何允许所有在EF DB中注册的用户访问,以便重定向到下一个页面并跳过此错误??

在.NET中使用Authorize属性时出现未经授权的HTML错误401

以下是解决方案:

1-我不得不更改Web.config文件并添加以下内容:

<authentication mode="Forms">
  <forms loginUrl="~/Home/Login" timeout="2880"  />
</authentication>

然后用[授权]装饰控制器

2-我必须清除浏览器(谷歌Chrome)中的cookie才能使其正常工作,否则我仍然可以访问帐户控制器。清理cookie将删除旧的cookie并启动新的cookie。

添加不带参数的Authorize属性将授予任何登录的用户访问权限:

[Authorize]
public class PrivateAreaController
{
    //
}

或针对个人行动:

public class MostlyPublicController
{
    [Authorize]
    public ActionResult GetPrivateStuff()
    {
        //
    }
}