資格情報が間違っていても、ログインはログアウトに変更されますが、nullの場合はログインします。なぜならもし機能customer.User!= nullを、私はどのように行うことができ、それは間違った資格情報であればここで資格情報がasp.netで正しい場合、ログインをログアウトに変更してください
<ul class="nav navbar-nav navbar-right">
@{
AccountContactVM customer = (AccountContactVM)ViewBag.AccountData;
}
@if (customer.User != null)
{
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="fa fa-user-circle fa-fw fa-lg" aria-hidden="true"></i>@customer.User.FirstName @customer.User.LastName<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li class="disabled">
<div class="row">
<div class="col-md-3">
<i class="fa fa-user-circle" style="font-size:40px;padding:5px 20px;" aria-hidden="true"></i>
</div>
<div class="col-md-9">
<p style="padding-top:5px;">
@customer.User.FirstName @customer.User.LastName <br />
@customer.Company.AccountName
</p>
</div>
</div>
</li>
<li class="divider"></li>
<li><a asp-controller="Account" asp-action="Index">Customer Portal</a></li>
<li class="divider"></li>
<li><a a asp-controller="Account" asp-action="LogOut">Logout</a></li>
</ul>
</li>
}
else
{
<li><a asp-controller="Account" asp-action="SignUp">Register</a></li>
<li><a asp-controller="Account" asp-action="SignIn"><i class="fa fa-sign-in fa-fw" aria-hidden="true"></i>Login</a></li>
}
<li ng-cloak><a href="@Url.Action("Index","Cart")"><span class="glyphicon glyphicon-shopping-cart"></span></i>Cart(<strong>{{CartCount}}</strong>)</a></li>
</ul>
は、ビュー コントローラー・コードの要件をまとめる
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult SignIn(UserLogin user)
{
//Account Varialble
Models.CustomerModel.Account account = new Models.CustomerModel.Account();
//Contact Variable
Models.CustomerModel.Contact contact = new Models.CustomerModel.Contact();
AccountContactVM customer = new AccountContactVM();
var a = user.Password.GetHashCode();
ViewBag.CartItemCount = cartItemCount;
if (ModelState.IsValid)
{
LoginAction login = new LoginAction();
contact = login.ContactProfile(user);
if (contact.ContactId != Guid.Empty)
{
if(contact.Authenticated == false)
{
ViewBag.Message = "Your account is not confirmed.";
customer.Company = account;
customer.User = contact;
ViewBag.AccountData = customer;
return View(user);
}else
{
account = login.AccountProfile(contact.AccountId);
if (account.AccountId != Guid.Empty)
{
customer.Company = account;
customer.User = contact;
helper.SetObject("accountcustomer", customer);
ViewBag.AccountData = customer;
return RedirectToAction("Index","Home");
}
ViewBag.AccountData = customer;
ViewBag.Message = "Unable to find company profile";
return View(user);
}
}
customer.Company = account;
customer.User = contact;
ViewBag.AccountData = customer;
ViewBag.Message = "Invalid credentials";
return View(user);
}
return View(user);
}
コントローラからユーザーの資格情報を確認するコードを追加できますか? – Ignas
はい、すでに編集済みです –
これを実装する方法はいくつかあります。明確にするもう1つのこと - 「ログアウト」とはどういう意味ですか?あなたのビューのどの部分が「ログアウト」ですか? – Ignas