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

时间:2015-10-29 18:13:34

标签: c# asp.net-mvc attributes authorize

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

这里我有帐户控制器;

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

当用户登录时,应该将用户重定向到使用[授权]属性锁定的此操作,但不幸的是我收到此错误“未经授权的Html错误401”。 我的问题是:如何授予在EF DB中注册的所有用户的访问权限,以便重定向到下一页并跳过此错误?

2 个答案:

答案 0 :(得分:2)

添加不带参数的Authorize属性将授予对所有用户的访问权限:

[Authorize]
public class PrivateAreaController
{
    //
}

或针对个别行动:

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

答案 1 :(得分:2)

以下是解决方案:

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

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

然后用[授权]

装饰控制器

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