私がする必要があるのは次のとおりです
- 小さいログイン フォーム (または任意の部分ビュー) を設定する
- 完全なログイン アクション
- ログインボタンをクリックする前にユーザーがいたのと同じ場所(コントローラー/アクション)に戻ります
部分的なリクエスト/サブコントローラー、RenderAction ソリューションのいずれかが、親ページの URL を処理するための追加のコードなしでこれを提供しますか?
私がする必要があるのは次のとおりです
部分的なリクエスト/サブコントローラー、RenderAction ソリューションのいずれかが、親ページの URL を処理するための追加のコードなしでこれを提供しますか?
次のことを試すことができます。
ログイン フォームをセットアップする新しいユーザー MVC ユーザー コントロール (Login.ascx) を作成します。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<% using (Html.BeginForm("authenticate", "login")) { %>
<%= Html.Hidden("returnurl", Request.Url.ToString()) %>
<div>
<label for="username">Username</label>
<%= Html.TextBox("username") %>
</div>
<div>
<label for="password">Password</label>
<%= Html.TextBox("password") %>
</div>
<input type="submit" value="Login" />
<% } %>
このパーシャルを一部のビュー ページに含めます。
<% if (!User.Identity.IsAuthenticated) { %>
<% Html.RenderPartial("~/Views/Home/Login.ascx"); %>
<% } else { %>
Welcome <%= Html.Encode(User.Identity.Name) %>
<%} %>
ログイン コントローラーでユーザー名とパスワードを確認し、認証が成功した場合は returnUrl にリダイレクトします。
public class LoginController : Controller
{
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Authenticate(string username, string password, string returnurl)
{
// TODO: Perform authentication, set cookies,
// verify that returnurl belongs to your site, etc...
return Redirect(returnurl);
}
}