.Net Identity将LoginPath设置为Https

时间:2015-03-12 17:23:28

标签: c# .net asp.net-identity

我在我的项目中使用Mvc 5.0和identity 2.0。

身份框架设置loginPath协议http,但我有ssl,需要返回https。 我无法使用https更改loginPath属性。

它返回http://www.mysite/Account/Login,但我需要https://www.mysite/Account/Login

My Identity ConfigureAuth:

  public void ConfigureAuth(IAppBuilder app)        
  {
      app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login"),                  
                ExpireTimeSpan = TimeSpan.FromDays(10),
                CookieName = "auth",
                SlidingExpiration = false                
            });
}

我的索引方法:

[Authorize]
public ActionResult Index()
{
    return View();
}

2 个答案:

答案 0 :(得分:0)

LoginPath仅指示将重定向未授权请求的地址。

您需要告诉浏览器,您只接受HTTPS请求。

如果您只想在某些请求中使用HTTPS,最简单的方法是使用RequireHttps属性修饰您的操作方法。

 [Authorize, RequireHttps]
 public ActionResult Index()
 {
    return View();
 }

或者在FilterConfig中全局使用此属性。

答案 1 :(得分:0)

[RequireHttps]属性添加到您的AccountControllerLogin操作中。

[RequireHttps]
[Authorize]
public class AccountController
{
        [RequireHttps]
        [AllowAnonymous]
        public ActionResult Login(string returnUrl)
        {

        }

}