我在项目中使用 Mvc 5.0 和身份 2.0。
身份框架设置登录路径协议http
但我有 ssl 并且需要返回https
.我无法使用https更改loginPath属性。
它返回 http://www.mysite/Account/Login 但我需要 https://www.mysite/Account/Login
我的身份配置身份验证:
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();
}
LoginPath 仅指示未经授权的请求将被重定向的地址。
您需要告诉浏览器,您只接受HTTPS请求。
如果只想在某些请求上使用 HTTPS,最简单的方法是使用 RequireHttps 属性修饰操作方法。
[Authorize, RequireHttps]
public ActionResult Index()
{
return View();
}
或者在 FilterConfig 中全局使用此属性。
将[RequireHttps]
属性添加到AccountController
或Login
操作中。
[RequireHttps]
[Authorize]
public class AccountController
{
[RequireHttps]
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
}
}