MVC 5 重定向至“登录页面与 OWIN 不起作用”诊断树
本文关键字:OWIN 登录页面与 不起作用 诊断 重定向 登录 MVC | 更新日期: 2023-09-27 18:37:24
我正在尝试使用OWIN来解决问题。 我创建了两个MVC 5项目。 一个使用 Aspnet.Identity 进行身份验证,另一个作为空项目启动。
我将以下内容添加到 emptyp 项目中:
-
具有登录操作和共同响应视图的帐户控制器
-
启动.cs和另一个部分启动.cs
public partial class Startup
{
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "ApplicationCookie",
LoginPath = new PathString("/Account/Login")
});
}
}
我在两个项目中都使用 [Authorize] 属性装饰了主控制器中的"关于"操作。
当我运行第一个项目并在登录前转到"关于"屏幕时,它会按预期重定向到登录操作。 当我对第二个项目执行相同的操作时,我收到"HTTP 错误 401.0 - 未经授权"而不是重定向。
知道是什么会导致第二个人以这种方式行事吗?
我已经创建了两个新的类似项目,并且能够重现您的错误。
在空白项目中,我必须安装Microsoft.Owin.Host.SystemWeb
(通过Nuget),一旦我这样做了,我的Startup.cs类就会出现一堆错误。 最终得到这个:
[assembly: OwinStartupAttribute(typeof(v2.Startup))]
namespace v2
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "ApplicationCookie",
LoginPath = new PathString("/Account/Login")
});
}
}
}
最后,当我调用用 [Authorize]
属性修饰的 About() 方法时,我现在能够点击/看到我的登录视图。
希望这有帮助!文 斯
根据 ASP.NET MVC 5 Web.config: "FormsAuthenticationModule" 或 "FormsAuthentication"
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
</modules>
</system.webServer>
为了提高安全性,我保留了两个"错别字"处理程序(以防Microsoft以后给我更改它)
<system.webServer>
<modules>
<remove name="FormsAuthenticationModule" />
<remove name="FormsAuthentication" />
</modules>
</system.webServer>