0

关于 StackOverflow 的第一个问题,如果这是重复的,请原谅我(我先搜索过,我保证)。

我正在使用 ASP.NET MVC 4 构建一个简单的后台应用程序。注销的默认代码使用表单来使用验证功能,如下所示:

@using (Html.BeginForm("LogOut", "Account", FormMethod.Post, new { id = "logoutForm" }))
{
    @Html.AntiForgeryToken()
    <a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}

然而,这给我的导航栏留下了一些奇怪的样式问题。我突然想到,只需将链接移到表单之外,我就可以轻松解决它,如下所示:

<a href="javascript:document.getElementById('logoutForm').submit()">Log Out</a>
@using (Html.BeginForm("LogOut", "Account", FormMethod.Post, new { id = "logoutForm" }))
{
    @Html.AntiForgeryToken()
}

然而,这让我想知道:这仍然安全吗?

(我认为是,但我是 ASP.NET 的新手,所以我想得到确认。)

4

3 回答 3

0

首先,我假设页面按照您的意愿提交。

表单安全性更多的是关于您如何提交数据的上下文。如果它需要安全,那么您可能需要考虑一些内部系统加密或 SSL 证书。

于 2013-09-09T14:49:26.967 回答
0

我会尝试解决“我的导航栏的奇怪样式问题”,而不是像这样的 HTML 元素。

如果您需要帮助,请发布 HTML。

顺便说一句,我认为防伪令牌可以与您发布的内容一起使用。

于 2013-09-09T14:50:31.857 回答
0

如果LogOut方法只接受 POST 请求并且您验证防伪令牌,那就太好了。

[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult LogOut()
{
    //log out user
}
于 2013-09-09T14:47:10.553 回答