关于MVC中的表单和Windows身份验证的困惑

时间:2014-05-15 21:35:50

标签: c# asp.net-mvc asp.net-mvc-4 forms-authentication windows-authentication

所以我创建了一个空的MVC项目作为学习经验,现在我有一些登录的东西,还有另一个问题......

似乎有人认为我关心使用Windows身份验证,所以我将以下内容添加到我的web.config文件中:

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>

现在,查看_LoginPartial.cshtml文件:

@if (Request.IsAuthenticated) {
    <text>
        Hello, @Html.ActionLink(User.Identity.Name, "Manage", "Account", routeValues: null, htmlAttributes: new { @class = "username", title = "Manage" })!
        @using (Html.BeginForm("Logoff", "Account", FormMethod.Post, new { id = "logoutForm" }))
        {
            @Html.AntiForgeryToken()
            <a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
        }
    </text>
} else {
    <ul>
        <li>@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>
        <li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
    </ul>
}

当我尝试运行应用程序时,我现在收到以下错误:

  

值不能为null或为空。

这一行突出显示:

Hello, @Html.ActionLink(User.Identity.Name, "Manage", "Account", routeValues: null, htmlAttributes: new { @class = "username", title = "Manage" })!

我想要删除它,但在我看来,即使使用Forms身份验证,这也很有用,所以我不知道现在要做什么。

提前感谢您提供有关在此处实施表单身份验证的任何建议。

1 个答案:

答案 0 :(得分:0)

使用个人用户帐户。我建议你重新开始而不是尝试修改身份验证。

enter image description here