0
私たちはこのように見える認証コントローラでのログイン方法があります。RedirectToActionをGETではなくPOSTとして実行するにはどうすればよいですか?
public string GetCertificate()
{
var headerCertificateValue = Request.Headers.Get("X-ARR-ClientCert");
return headerCertificateValue;
基本的に私たちは、認証のためのヘッダーで証明書を使用している:
[HttpPost, ValidateModelState]
public ActionResult Login()
{
var certificateName = GetCertificate();
GetCertificate()は次のようになります。だから今、私たちは証明書ヘッダーが動作することをテストしようとしています。
私は私達の証明書サービス提供メカニズムをモックするために、このように見えるのフォームを持っている:ここ
using (Html.BeginForm("MockEcaCertLogin", "Authentication", new { area = "Login" }, FormMethod.Post))
{
@Html.ValidationSummary(true)
@Html.AntiForgeryToken()
<h1 class="bg-info">Mock ECA Login</h1>
<div class="margin-bottom-20 margin-top-20">
@Html.DropDownList("CertName", new List<SelectListItem>()
{
new SelectListItem() { Text = "First Last", Value = "First.Last.M.CCCdddddddddd.ID" },
new SelectListItem() { Text = "First Last", Value = "FirstLast" },
})
<button type="submit" class="btn btn-default">Login</button>
</div>
}
この記事:
オリジナルのログイン方法に戻って、証明書を希望する必要があり[HttpPost, ValidateAntiForgeryToken]
public RedirectToRouteResult MockEcaCertLogin(string certName)
{
Request.Headers.Add("X-ARR-ClientCert", certName);
return RedirectToAction("Login");
}
ヘッダーの中で認証の準備が整っていることを確認して、動作することをテストできます。
問題は、RedirectToRouteResultを投稿にすることができないことです。 これをどうすれば実現できますか?誰か知っていますか?
RedirectResultはいつもあなたが 'RedirectToAction' – Shyju
はなぜあなたが要求にヘッダを追加し、それを放棄しているとポストを行うことはできませんrequest.So GETを発行しますか?これまでの試みは多くの誤解に基づいているかもしれないようです。 – David
クライアント側でヘッダーを設定してから、javascriptを使用してフォームをLogin httppostアクションメソッドに送信しないのはなぜですか? – Shyju