servicestack - 向 ServiceStack 身份验证提供程序添加功能

标签 servicestack ormlite-servicestack

我正在使用 OrmLite 评估 ServiceStack。内置的 Auth 服务以及 Session 和 Cache 比 ASP.NET 成员提供程序要好得多。

但是,开箱即用的 Auth Service 不提供我们想要构建的应用程序所需的一些功能,例如:

  • 更改密码
  • 3 次登录尝试失败后锁定帐户
  • 禁用用户帐户
  • 密码提示问答
  • 登录尝试的审计日志

我是否需要构建自定义身份验证提供程序,或者是否已经提供了此功能?

非常感谢!

最佳答案

我刚刚开始实现密码重置并且可以看到两种实现它的方法(我还没有测试过 - 甚至没有尝试过 - ):

1.创建一个继承自Registration并处理PUT的类。然后应该可以调用注册类的 UpdateUserAuth 方法来更改密码。问题 - 对我来说 - 这里是放置验证需要指定用户名和密码,而不仅仅是一个(我们只使用电子邮件作为标识符)。这可以通过关闭验证功能来解决。

2.创建一个密码重置服务来执行 UpdateUserAuth 的操作。

var session = this.GetSession();
var existingUser = UserAuthRepo.GetUserAuth(session, null);
if (existingUser == null)
{
    throw HttpError.NotFound("User does not exist");
}

var newUserAuth = ToUserAuth(request);
UserAuthRepo.UpdateUserAuth(newUserAuth, existingUser, request.Password);

显然需要添加一些适当的验证。

已更新

我已将更改密码提醒/重置服务设置为 gist (我的第一个要点!)

关于servicestack - 向 ServiceStack 身份验证提供程序添加功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15335606/

相关文章:

c# - 带类型转换器的 OrmLite SQL 表达式查询

c# - Servicestack - 操作顺序 Fluent 验证和请求过滤器

redis - 如何使用 ServiceStack Redis 客户端获取多个 HashSet

azure - GET 上的尾部斜杠会导致 Azure 上出现 404

servicestack - 为命名连接配置 ConnectionFilter

.net - 是否可以在 OrmLite 中映射 SQL Server XML 列?

c# - 无法从 OrmLiteConfigExtensions (ServiceStack.OrmLite.Core) 加载 System.ComponentModel.Annotations

redis - IRedisClient 使用后未处理

c# - Swagger 和 ServiceStack 4.0

mysql - 能够在 ServiceStack/ORMLite codefirst 中创建聚簇索引