将https与@ Html.BeginForm结合使用

时间:2013-11-15 13:53:03

标签: asp.net-mvc-4 https html.beginform

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

一旦用户信息通过互联网提交,代码字段就应加密,但其他字段不是必需的。然后,一旦我在控制器中收到用户信息,我就加密代码字段并将其存储在数据库中。其他用户信息按原样存储在数据库中。

我想加密服务器端的用户代码而不是客户端。

我的问题是,一旦点击提交按钮,就会抛出错误,显示一个页面说:

  • 确保网址https:// ...正确
  • 使用搜索引擎搜索页面
  • 几分钟后更新/刷新页面
  • 通过转到工具 - >互联网选项 - >高级选项 - >配置 - >安全
  • ,确保启用TLS / SSL协议

我确保启用了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

但没有任何作用......

0 个答案:

没有答案