我应该使用表单身份验证在我的.cshtml中使用身份验证的用户

时间:2016-04-03 20:02:39

标签: asp.net authentication forms-authentication

我已经使用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文件中使用什么代替经过身份验证的用户?

1 个答案:

答案 0 :(得分:0)

也许是一个愚蠢的答案,但你的web.release.config中有关键,而不仅仅是web.debug.config?

如果您在尝试登录时遇到500或400错误,可以在浏览器中看到devtools吗?也可能是路由问题。