1

我有一个带有一些字段的 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

但没有任何效果...

4

0 回答 0