如何仅在ASP.NET MVC中对指定用户进行身份验证

时间:2019-02-07 11:50:37

标签: authentication asp.net-authorization

我的控制器中有一个方法,

    public async Task<IActionResult> Index()
    {
        return View();
    }

我有用户email_list

    example-one@gmail.com,example-two@gmail.com,example-three@gmail.com

我想做的是当用户重定向到Index()时,如果用户的电子邮件包含在我的email_list中,我想授予对该页面的访问权限,否则,我将不授予访问权限。
如何通过在此方法中检查当前用户的电子邮件来实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以为ActionResult创建AuthorizeAttribute,并从登录用户会话数据中帮助检查电子邮件列表中是否包含登录电子邮件。

您需要创建如下所述的覆盖方法。

    public override void OnAuthorization(AuthorizationContext filterContext)
    {
var request = filterContext.HttpContext.Request;
                if (filterContext == null) { throw new ArgumentNullException("filterContext"); }

// Add Email checking code here

base.OnAuthorization(filterContext);
}