我有一个带有一些字段的 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" />
...
}
}
配置控制器.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
}
用户信息通过互联网提交后,代码字段应加密,但其他字段不是必需的。然后,一旦我在控制器中收到用户信息,我就会加密代码字段并将其存储在数据库中。其他用户信息按原样存储在数据库中。
我想在服务器端而不是在客户端加密用户代码。
我的问题是,一旦单击提交按钮,就会引发错误,会显示一个页面:
- 确保网址 https://... 正确
- 使用您的搜索引擎搜索页面
- 在几分钟内更新/刷新页面
- 通过转到工具-> Internet 选项-> 高级选项-> 配置-> 安全来确保启用 TLS/SSL 协议
我确保启用了 TLS 和 SSL 协议:启用了 SSL 3.0 和 TLS 1.0。
怎么了?以及如何将加密的代码发送到 mvc4 控制器?我不想在 web.config 中进行更改。
我尝试了其他解决方案,如下所述,但对我没有任何作用:
构建自己的动作过滤器:ASP.NET MVC RequireHttps
使用表单操作而不是 html.beginform: 如何在 MVC 4 中将 POST 更改为 SSL URL
但没有任何效果...