7

我正在使用 ServiceStack 中的身份验证功能并将身份验证插件配置为使用 CredentialsAuthProvider。在生成的元数据页面上,ServiceStack 显示以下操作:

  • 认证
  • 分配角色
  • 取消分配角色

我只是使用 Auth 操作,为什么我想删除角色操作以避免本页的读者对如何使用 API 感到困惑。这可能吗?

4

2 回答 2

18

您可以执行以下操作,仅删除 AssignRoles 和 UnAssignRoles

AuthFeature authFeature = new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new BasicAuthProvider() });

authFeature.IncludeAssignRoleServices = false; 

Plugins.Add(authFeature);
于 2013-02-28T01:00:27.397 回答
8

如有疑问,请查看Plugins wiki中是否有描述,或者查看专用的Authentication page中是否有描述。

每个插件都有覆盖其行为的属性,在这种情况下,只需使用可用的路由覆盖它:

Plugins.Add(new AuthFeature(() => new AuthUserSession()) {
    IncludeAssignRoleServices = false
});

这是以下内容的简写:

Plugins.Add(new AuthFeature(() => new AuthUserSession(),
    new IAuthProvider[] { ... },
    ServiceRoutes = new Dictionary<Type, string[]> {
      { typeof(AuthService), new[]{"/auth", "/auth/{provider}"} },
      //Omit the Un/AssignRoles service definitions here.
    }    
));

AuthFeature的源代码对于查看每个属性的默认值也很有用。

于 2013-02-21T08:13:04.593 回答