我已经使用Forms身份验证设置了一个简单的登录,在ASP.NET MVC应用程序的本地主机上工作正常
我可以在实时应用中发布登录表单。
但是当我将网站发布到网络上的实时应用程序时,表单身份验证不起作用。我做错了什么?
这是我的代码:
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Home/Login" timeout="30" />
</authentication>
</system.web>
控制器:
public ActionResult LoginUser(string username, string password)
{
if (ConfigurationManager.AppSettings["UserName"] == username && ConfigurationManager.AppSettings["Password"] == password)
{
FormsAuthentication.SetAuthCookie(username, false);
return RedirectToAction("Index");
}
return RedirectToAction("Index");
}
使用Javascript:
$("body").on("click", "#loginbutton", function (e) {
$("#loginbutton").attr("href", "/loginuser?username=" + $('[user]').attr('user') + "&password=" + $('[pass]').attr('pass'));
});
.cshtml:
@if (User.Identity.IsAuthenticated)
{
<div class="row">
<div class="col-xs-12">
<a href="#uploadimage" class="md light btn-popup upload-cloud"><i class="fa fa-cloud-upload" id=""></i></a>
</div>
</div>
}
为什么这不适用于实时应用程序?
更新
我现在声称它在localhost上也不起作用。问题是@if (User.Identity.IsAuthenticated)
我应该在我的.cshtml文件中使用什么代替经过身份验证的用户?
答案 0 :(得分:0)
也许是一个愚蠢的答案,但你的web.release.config中有关键,而不仅仅是web.debug.config?
如果您在尝试登录时遇到500或400错误,可以在浏览器中看到devtools吗?也可能是路由问题。