将使用 AntiForgeryToken 涵盖 POST 操作方法中的授权规则我有以下 Create.cshtml 视图用于创建新订单:-
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<fieldset>
<legend>Create New Order</legend>
<ol>
<li>
@Html.LabelFor(m => m.OrderName)
@Html.TextBoxFor(m => m.OrderName)
</li>
<li>
@Html.LabelFor(m => m.OrderType)
@Html.TextBoxFor (m => m. OrderType)
</li>
<li>
@Html.LabelFor(m => m.OrderDate)
@Html.TextBoxFor(m => m. OrderDate)
</li>
</ol>
<input type="submit" value="Create" />
</fieldset>
}
调用以下 GET 操作方法时将呈现上述视图:-
[Authorize (Roles="customerservice")]
public ActionResult Create()
{
return View("Create");
}
POST 操作方法是:-
//
// POST: /Create
[HttpPost]
[ValidateAntiForgeryToken]
[Authorize (Roles="customerservice")]
public ActionResult Create(Order r)
{
// Code goes here
return View(model);
}
现在我的问题如下: -
因为我在我看来使用的是 Antiforgery 令牌,所以我将保证对“POST:/ Create”的任何有效调用都已完成;从应用程序本身 + 当用户在 Create 视图内时,这意味着用户在 customerservice 角色下。
那么这是否意味着如果我从 POST Create 操作方法中删除授权属性,那么我仍然安全吗?因为如果应用程序收到“POST:Create”请求,那么这意味着用户已经获得“Get:/Create”操作方法的授权,并且该请求是从 Create 视图发送的?关于上述问题的任何评论。最好的祝福