授权属性不工作MVC 5

时间:2014-10-14 13:35:33

标签: asp.net-mvc asp.net-mvc-5

我已将模型分为特定项目

之后MVC默认[授权]属性在我的应用程序中不起作用

当我尝试登录应用程序时,它不会登录应用程序,也不会重定向到特定页面

7 个答案:

答案 0 :(得分:14)

检查您是否已删除表单授权模块。默认情况下,某些新模板会删除表单授权。如果已将其删除,请将其注释掉。它将在您的web.config中显示如下:

<remove name="FormsAuthentication" />

我发现这个问题正在寻找一个非常类似的错误,所以我认为发布我的解决方案会很好。

答案 1 :(得分:5)

你有这样的事吗

<authentication mode="Forms">
 <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
你的web.config中的

答案 2 :(得分:2)

对我来说,我需要设置以下appSetting

<add key="owin:AutomaticAppStartup" value="false"/>

<add key="owin:AutomaticAppStartup" value="true"/>

答案 3 :(得分:1)

我在授权不工作时遇到了同样的问题。起初我以为是代码。但一切都是正确的 - 它没有错误。然后我重新启动了我的开发机器,它开始工作了。它是第一次工作,然后有同样的问题,它没有工作。认为它必须存储第一个周期的值而不是清除它。 (只是理论)

答案 4 :(得分:1)

对我而言这是一个非常微不足道的错误。我的身份验证了。尽管浏览器关闭,Owin身份验证仍然是用户登录的。我需要用以下代码表示注销:

public void IdentitySignout() {
   AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie,
   DefaultAuthenticationTypes.ExternalCookie);
}

答案 5 :(得分:1)

对我来说,我刚从谷歌浏览器中删除了cookie,但它确实有效。

答案 6 :(得分:0)

我今天刚遇到这个问题,并希望为可能遇到此错误的任何人添加我的解决方案。没有其他任何对我有用。我最近为此解决方案中的其他项目之一完成了安装程序,我必须取消选中Configuration Manager中的“Build”框。

如果未经检查,当我添加[Authorize]标签时它没有重新构建,即使我确实进行了显示的cshtml页面更改。直到我在控制器动作中放置断点并注意到我从未击中它时,我才弄明白。我甚至尝试从控制器返回null,应用程序仍然导航到新页面。

所以,长话短说,请检查以确保您在Configuration Manager中构建该项目,这对我有用。