我的解决方案有4个项目:
- ASP。. NET Web Api
- ASP。净MVC
- 服务(这里我使用接口实现API的操作,包括登录和注册)
- 域(模型类)
在API项目中,一切都有效,但当我在MVC项目中包含登录时,我得到这个错误:
处理请求时发生未处理的异常。
InvalidOperationException: No authenticationScheme was specified, and there is No defaultchallengesscheme found。默认方案可以使用AddAuthentication(string defaultScheme)或AddAuthentication(Action configureOptions)来设置。Microsoft.AspNetCore.Authentication.AuthenticationService。ChallengeAsync(HttpContext context, string scheme, AuthenticationProperties properties)
I使用JWT身份验证和IdentityUser。当我在MVC项目中调试登录时,返回令牌,但是当打开具有Authorize
的视图时,我得到错误。有人能帮帮我吗?
代码登录在我的控制器在MVC项目:
[HttpPost]
public async Task<IActionResult> Login(Usuarios usuarios)
{
using (var httpClient = new HttpClient())
{
StringContent stringContent = new StringContent(JsonConvert.SerializeObject(usuarios), Encoding.UTF8, "application/json");
using (var response = await httpClient.PostAsync("https://localhost:xxxx/api/Usuarios/Login", stringContent))
{
string token = await response.Content.ReadAsStringAsync();
if (token == "Invalid credentials")
{
ViewBag.Message = "Incorrect UserId or Password!";
return Redirect("~/Usuarios/Login");
}
HttpContext.Session.SetString("JWToken", token);
}
return Redirect("~/ProfileUsers/UserProfile");
}
}
您需要在APS中创建一个方法Login
。. NET MVC项目,并指出您的身份用户的索赔日期。