如何设置asp.net身份默认登录页面



我开始使用新的asp.net标识,特别是2。x版本。我从一个空的网站开始,因为我喜欢从一切开始,控制一切进入我的应用程序。我真的不喜欢自动的东西。

我有一个目录设置是通过一些设置在我的网页安全。在目录中配置。当一个未登录的用户试图访问这个受保护目录中的页面时,该用户将被重定向到:

/Account/Login?ReturnUrl=%2fUsers%2fDefault.cshtml

我不想那样。我希望将用户重定向到:

/Login.cshtml?ReturnUrl=*someurl* 

我如何让重定向发生在我的登录。CSHTML文件,而不是默认的条目?

我在应用程序中做的一些事情:

我已经设置了应用程序的web。配置文件:

<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文件在我的目录中并使用它。我已经这样做了,它的工作正如预期的那样。如果有什么建议,请告诉我。我总是想把事情做得更好,所以建议你走开吧。: -)

你已经配置了Forms Authentication,而在你的代码中我看到了OWIN的东西。如果你选择OWIN,那么你必须输入web。

<authentication mode="None">    
</authentication>

似乎你正试图以错误的方式使用MVC。
loginUrl="~/Login.cshtml"在MVC模型中没有意义。你的url是通过控制器和路由形成的。*。CHTML文件永远不会直接暴露。

ASPNET。Identity, MVC(Razor), Owin, EF是不同的东西。在从头开始一个项目之前,您应该确定要使用什么技术和什么dll,以及如何将它们组合在一起。

相关内容

  • 没有找到相关文章

最新更新