在我的MVC 5应用程序中,身份验证未能对表单身份验证进行身份验证。页面正确重定向,但User.Identity.IsAuthenticated和User.Identity.Name值为空。
我的webconfig文件,
我的webconfig文件,
<system.web>
<authentication mode="Forms">
<forms cookieless="UseCookies" defaultUrl="~/" loginUrl="~/user/signin" name="MYAPPWeb" timeout="21600" slidingExpiration="true"/>
</authentication>
用户控制器,
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult SignIn(SignInViewModel user)
{
UserDTO userObj;
using (var services = new ServiceFactory())
{
userObj = services.UserManagement.ValidateLoginDetails(ConfigHelper.EnvironmentString, user.TenantName, user.Username, user.Password);
}
string userID = userObj.UserID.ToString();
//FormsAuthentication.RedirectFromLoginPage(userID, user.RememberMe);
FormsAuthentication.SetAuthCookie(userID.ToString(),true);
FormsAuthentication.RedirectFromLoginPage(userID, false); //DO NOT REMEMBER ME
}
HomeController (默认页面)
public ActionResult Index()
{
bool x = User.Identity.IsAuthenticated; //false?
string y = User.Identity.Name; //null?
return View();
}
看起来非常简单,我有遗漏什么吗?请帮忙!
注意:
创建项目时选择了Windows身份验证。它创建了一些Owin身份验证相关的配置CS文件(startup.auth.cs)。我已将其删除并添加了上述appsetting条目,因为需要停止加载Owin程序集。
<add key="owin:AutomaticAppStartup" value="false"/>