我已将模型分为特定项目
之后MVC默认[授权]属性在我的应用程序中不起作用
当我尝试登录应用程序时,它不会登录应用程序,也不会重定向到特定页面
答案 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中构建该项目,这对我有用。