我在我的项目中使用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();
}
答案 0 :(得分:0)
LoginPath仅指示将重定向未授权请求的地址。
您需要告诉浏览器,您只接受HTTPS请求。
如果您只想在某些请求中使用HTTPS,最简单的方法是使用RequireHttps属性修饰您的操作方法。
[Authorize, RequireHttps]
public ActionResult Index()
{
return View();
}
或者在FilterConfig中全局使用此属性。
答案 1 :(得分:0)
将[RequireHttps]
属性添加到您的AccountController
或Login
操作中。
[RequireHttps]
[Authorize]
public class AccountController
{
[RequireHttps]
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
}
}