我有一个带有一些字段的mvc4视图表单,让我们说:
以下示例:
@{
var actionURL = "https://" + Request.Url.Host + Request.Url.PathAndQuery;
using (Html.BeginForm("AddUser", "Configure", FormMethod.Post), new { @action = actionURL })
{
...
@Html.TextBoxFor(model => model.UserViewModel.Name, null, new { id = "UserName" })
@Html.PasswordFor(model => model.UserViewModel.UserCode, new { id = "UserCode" })
...
<input id="submitUser" type="submit" value="Send" />
...
}
}
ConfigureController.cs:
[RequireHttps]
public ActionResult AddUser(UserViewModel model)
{
// Encrypt user code and store it in database
// Store in database the rest of user information as-is, without encrypting
}
一旦用户信息通过互联网提交,代码字段就应加密,但其他字段不是必需的。然后,一旦我在控制器中收到用户信息,我就加密代码字段并将其存储在数据库中。其他用户信息按原样存储在数据库中。
我想加密服务器端的用户代码而不是客户端。
我的问题是,一旦点击提交按钮,就会抛出错误,显示一个页面说:
我确保启用了TLS和SSL协议:启用了SSL 3.0和TLS 1.0。
怎么了?以及如何将代码加密发送到mvc4控制器?我不想在web.config中进行更改。
我尝试了其他解决方案,如下所述,但对我没有任何作用:
构建自己的操作过滤器:ASP.NET MVC RequireHttps
使用表单操作代替html.beginform: How to change POST to SSL URL in MVC 4
但没有任何作用......