我开始使用新的asp.net标识,特别是2.x版本。我从一个空的网站开始,因为我喜欢从一切开始,并控制进入我的应用程序的一切。我真的不喜欢自动化的东西。
我有一个目录设置为通过目录中的web.config中的某些设置进行保护。当未登录的用户尝试访问此受保护目录中的页面时,该用户将被重定向到:
/Account/Login?ReturnUrl=%2fUsers%2fDefault.cshtml
我不想要那个。我希望将用户重定向到:
/Login.cshtml?ReturnUrl=*someurl*
如何将重定向发送到我的login.cshtml文件而不是默认条目?
我在应用中做过的事情:
我已将应用程序的web.config文件设置为:
<authentication mode="Forms">
<forms loginUrl="~/Login.cshtml" timeout="3600"/>
</authentication>
在我的startup.cs文件中,我有:
using Microsoft.AspNet.Identity;
using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Owin;
[assembly: OwinStartup(typeof(GolfGameApp.Startup))]
namespace GolfGameApp
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Login.cshtml"),
LogoutPath = new PathString("/Logout.cshtml")
});
}
}
}
与一些朋友交谈,看起来我必须转到我目录中的_PageStart.cshtml文件并使用它。我已经完成了这项工作并按预期工作。如果有一些建议,请告诉我。我总是试图做得更好,所以建议离开。 : - )
答案 0 :(得分:2)
在web.config中您已配置Forms Authentication
,而在您的代码中我看到了OWIN
个内容。如果您选择OWIN,那么您必须在web.config中输入以下内容。
<authentication mode="None">
</authentication>
您似乎也试图以错误的方式使用MVC
loginUrl="~/Login.cshtml"
在MVC模型中没有任何意义。您的URL是通过控制器和路由形成的。 * .chtml文件永远不会直接暴露。