C# 如何检查用户';s的身份验证失败

C# 如何检查用户';s的身份验证失败,c#,asp.net-mvc,asp.net-core,authentication,C#,Asp.net Mvc,Asp.net Core,Authentication,这是我如何验证和登录我的用户: public void UserAuthentication(string email) { var claim = new List<Claim> { new Claim(ClaimTypes.Name, email) }; var identity = new ClaimsIdentity(claim, CookieAuthenticationDefaults.AuthenticationScheme); var pri

这是我如何验证和登录我的用户:

public void UserAuthentication(string email)
{  
    var claim = new List<Claim> { new Claim(ClaimTypes.Name, email) };
    var identity = new ClaimsIdentity(claim, CookieAuthenticationDefaults.AuthenticationScheme);
    var principal = new ClaimsPrincipal(identity);
    HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal).Wait();
}
public void用户身份验证(字符串电子邮件)
{  
var claim=new List{new claim(ClaimTypes.Name,email)};
var identity=newclaimsidentity(索赔,CookieAuthenticationDefaults.AuthenticationScheme);
var principal=新的ClaimsPrincipal(身份);
HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,principal).Wait();
}

我想问,这个方法会失败吗?如果是这样的话,我怎么处理呢?

发布部分方法不会给你正确答案。更新了我的代码。我将用户输入的电子邮件发送到此方法,并将其作为名称声明,以便在我的应用程序中引用
user.Identity.name
。请相信此代码有时会失败,因为
User.Identity.Name
可以返回null或
User.Identity.IsAuthenticated
可以为false。所以我想抓住这次失败。如何实现此目的?
User.Identity.Name在遇到此问题时可以返回null,或者User.Identity.IsAuthenticated可以为false
?根据您的代码和描述,您似乎希望使用没有Asp.net核心标识的cookie身份验证,对吗?如果是这种情况,可能是cookie过期了,请检查它。此外,这里有一些关于cookie身份验证的相关文章,您可以参考它们:而且,如果这种方法在身份验证中失败,我会遇到这个问题。除非这是不可能的。我在这里使用cookie身份验证。我只是想知道它是否会失败。我读了一些关于
AuthenticateResult
的文章,但不确定如何使用它,或者在这里使用它是否有用。也许您想创建一个自定义cookie AuthorizationHandler来验证声明,请查看以下文章:和。