我遇到什麼應該在ASP.NET MVC一個簡單的登錄表單的問題2.本質上我的形式看起來有點像這樣:ASP.NET MVC - HTML.BeginForm和SSL
using (Html.BeginForm("LogOn", "Account", new { area = "Buyers" }, FormMethod.Post, new { ID = "buyersLogOnForm" }))
我在登錄操作方法的RequiresHTTPS過濾器,但在執行時我收到以下消息
所請求的資源只能 通過SSL訪問
此時只有工作的解決方案是一個額外的行動htmlattribute通過如下:
var actionURL = "https://" + Request.Url.Host + Request.Url.PathAndQuery;
using (Html.BeginForm("LogOn", "Account", new { area = "Buyers" }, FormMethod.Post, new { ID = "buyersLogOnForm", @action = actionURL }))
雖然這工作我不知道一)爲什麼我在第一時間看到了這個問題,並b)如是從http頁面發佈到https的更直接的方式?
[編輯]
我應該指出,在登錄下拉菜單將可在許多公共頁面。我不希望所有的網頁都是HTTPS。例如,我希望的頁面 - 任何人都可以看到 - 不應該是基於HTTPS的。基本上我需要在表單中指定協議,但不知道如何做,或者如果可能。
我將不勝感激任何意見/建議。 在此先感謝
JP
問題在於沒有爲您的表單創建FormContext,所以所有的Html輸入幫助程序都不會添加驗證屬性附加到您的視圖模型... – 2012-02-10 21:50:07
請參閱下面的答案由布拉德J.這是不安全的! – Null 2015-04-17 04:07:42