C# MVC中的Authorize属性不';当用户为';我没有登录

C# MVC中的Authorize属性不';当用户为';我没有登录,c#,asp.net-mvc,authentication,C#,Asp.net Mvc,Authentication,我有自己的身份验证,在Global.asax.cs中如下所示: protected void Application_AuthenticateRequest(object sender, EventArgs e) { HttpCookie authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie == null || authCookie.Value == "

我有自己的身份验证,在Global.asax.cs中如下所示:

protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
    HttpCookie authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];
    if (authCookie == null || authCookie.Value == "")
        return;

    FormsAuthenticationTicket authTicket;

    try
    {
        authTicket = FormsAuthentication.Decrypt(authCookie.Value);
    }
    catch
    {
        return;
    }

    string[] roles = authTicket.UserData.Split(';');

    if (Context.User != null)
        Context.User = new GenericPrincipal(Context.User.Identity, roles);
}
然后在Web.config中:

<authentication mode="Forms">
   <forms loginUrl="~/Users/Login" defaultUrl="~/Items/Index" timeout="432000" />
</authentication>

有没有关于这个问题的建议?

我设法解决了这个问题。结果是NinjectWebCommon文件导致了它。我只是把它取下来,它又能工作了

Index()
方法上是否有
[AllowAnonymous]
?您的登录方法是什么?您可能想调用
进行身份验证。RedirectFromLoginPage
或类似功能。测试前是否尝试在浏览器中删除Cookie?闻起来你可能有旧的cookie设置,它使你的所有请求都已被授权。不,我没有[AllowAnonymous]任何地方。这也不是cookies的问题,我在不同的浏览器和隐姓埋名中尝试过,结果仍然一样。我只是尝试创建一个全新的项目,在那里做一个简单的登录,效果很好,所以我的原始项目中一定有某种冲突,打破了它。
[Authorize]
public class ItemsController : Controller
{