Request.IsAuthenticated が常に false を返すという問題があります。AuthCookie を設定しています
CurrentRequest currentRequest = null;
if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
{
return Redirect(returnUrl);
} else if (login.ValidateUser(acct.UserName, acct.Password))
{
FormsAuthentication.SetAuthCookie(acct.UserName, true); //Edit on 11/12 @11:08
currentRequest = new CurrentRequest();
SessionWrapper.currentRequest = currentRequest;
return RedirectToAction("About", "Home");
}
//これは、ログインまたはログオフを表示することになっている部分的なログイン ページです。
@using KMSS.Helper;
//これは常に false です
@if (Request.IsAuthenticated) //Same issue with User.Identity.IsAuthenticated
{
if (SessionWrapper.currentRequest != null)
{
<text> Welcome <strong> @SessionWrapper.currentRequest.Username </strong>
[@Html.ActionLink("Sign Off", "Logoff", "Account")]
</text>
} else {
@: [ @Html.ActionLink("Sign In", "Login", "Account") ]
}
} else
{
@:[ @Html.ActionLink("Sign In", "Login", "Account") ]
}
オンラインで読んだ後、ブール値を持つクラスを作成し、代わりにそのクラスを使用しようとしました。ただし、オブジェクトが新しい変数例外のインスタンスに設定されていません。設定方法は次のとおりです。 //部分ログインページ
@model KMSS.Helper.ViewModelAuthenticate;
//これは常に false です
@if (Model.IsAuthenticated)
//The model is null even though I create create a reference in the Login Method i.e.
(ViewModelAuthenticate auth = new ViewModelAuthenticate();
{
if (SessionWrapper.currentRequest != null)
{
<text> Welcome <strong> @SessionWrapper.currentRequest.Username </strong>
[@Html.ActionLink("Sign Off", "Logoff", "Account")]
</text>
} else {
@: [ @Html.ActionLink("Sign In", "Login", "Account") ]
}
} else
{
@:[ @Html.ActionLink("Sign In", "Login", "Account") ]
}
//ここにクラス public class ViewModelAuthenticate { public bool IsAuthenticate { get; 設定; } }
//ここで、コントローラーでクラスを初期化しています
public ActionResult Login()
{
ViewModelAuthenticate auth = new ViewModelAuthenticate();
auth.IsAuthenticate = false;
return View();
}
//ログインの内外でこれを試しましたが、部分的なログイン ビューの前に呼び出されます。ただし、オブジェクトが新しい変数例外のインスタンスに設定されていません。ここで何が間違っていますか?あなたの助けに感謝します。
//Showing the authentication section of the config file.
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" slidingExpiration="true" />
</authentication>