【问题标题】:ASP.NET Web API User Activation by Administrator管理员激活 ASP.NET Web API 用户
【发布时间】:2015-09-02 15:59:08
【问题描述】:

我需要阻止用户登录到我的 ASP.NET Web API 2.0 Identity 3.0 支持的网站,直到管理帐户“激活”用户已确认注册的 ApplicationUser 帐户。

我已经实现了 EmailConfirmed 逻辑来验证 ApplicationUser 帐户是否已使用有效的电子邮件地址注册。现在我正在寻找一个合适的地方来对我添加的 ApplicationUser.Activated 属性进行检查,除非它被设置为 true,否则它会阻止登录。

我已经对 OAuthAuthorizationServerProvider 类进行了一些研究,但我认为我必须花一些时间了解 OAuth 2.0 才能进入其中。任何人都可以就如何以及在何处对这样的 Activated 属性实施测试提出建议吗?

PS - 如果不明显,我正在使用不记名令牌身份验证。

【问题讨论】:

  • 如果(appUser.Activated)?在哪里?你想在哪里阻止他们?
  • 你提供的逻辑测试不用多说。我在问我应该在 Identity 3.0 代码的哪个位置添加该测试? ApplicationOAuthProvider.GrantResourceOwnerCredentials 看起来像是一个可以执行此操作的地方,但这不是测试 EmailConfirmed 的地方。
  • 好吧,我似乎能够为尚未验证其电子邮件地址的用户获取不记名令牌。以前好像不是这样,但现在看来是这样。

标签: c# asp.net oauth-2.0 asp.net-web-api2 asp.net-identity-3


【解决方案1】:

当用户单击您发送给用户的激活链接时做一件事。单击该链接重定向到显示一条消息“您已成功注册”的页面并在页面加载时调用数据库并设置激活列为真,并在该页面上放置计时器并将用户重定向到登录页面。在登录期间,您可以使用电子邮件和密码检查用户状态。如果状态为真,则表示其注册用户。

希望它会有所帮助。

【讨论】:

  • 谢谢,但我不希望电子邮件验证激活用户。我已经涵盖了电子邮件验证。我想要的是管理员激活用户和代码来阻止用户登录,直到他或她被管理员激活。
  • i我认为在数据库“isactive”中再添加一列并在单击用户链接后将其设置为false将这一列设置为true会非常麻烦。
  • 我需要阻止用户登录到我的 ASP.NET Web API 2.0 Identity 3.0 支持的网站,直到管理帐户“激活”用户已确认注册的 ApplicationUser 帐户。
猜你喜欢
  • 2015-05-17
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-23
  • 2020-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多