У меня проблема с моей проверкой подлинности в Интернете, я не могу войти в систему. authenticated retrurn always false Когда я всегда вхожу в систему, он отправляет меня на страницу входа. Я отлажена, и я нашел проблему httpContext.Request.IsAuthenticated всегда возвращает ложь, любую помощь .. контроллер:Проверка подлинности веб-безопасности всегда возвращается «false»
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
[AllowAnonymous]
[HttpPost]
public ActionResult Login(UserProfile register)
{
WebSecurity.Login(register.UserName, register.password, true);
if (User.Identity.IsAuthenticated)
{
return RedirectToAction("Index", "Home");
}
return RedirectToAction("Index", "Contact");
}
вид:
<h2>@ViewBag.Title.</h2>
<div class="row">
<div class="col-md-8">
<section id="loginForm">
@using (Html.BeginForm("Login", "AccountHopital", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<h4>Utilisez un compte local pour vous connecter.</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.UserName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.password, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.password, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.password, "", new { @class = "text-danger" })
</div>
</div>
и web.config:
<system.web>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
<authentication mode="Forms">
<!--<modules>
<remove name="FormsAuthentication" />
</modules>-->
<forms loginUrl="~/AccountHopital/Login" timeout="3600" />
</authentication>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
</modules>
</system.webServer>
это всегда ложь: HasUserID = ложь, Isauthenticated = ложь:/ –
Если вы проверяете внутри метода POST входа, он будет. Вы должны перенаправить на другое действие для файла cookie et. и др. быть доступным. Попробуйте 1) Войти и 2) вернитесь на страницу входа, используя приведенный выше код. Опять же, вы должны иметь успешный вызов вашего метода 'WebSecurity.Login' ** И ** вам нужно перенаправить на другой запрос на использование cookie. – Tommy
Я пытаюсь использовать formsauthentication.setauthcookie, и все в порядке, это проблема cookie в WebSecurity.Login. –