问题标签 [custom-authentication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
414 浏览

authentication - WSO2 身份服务器身份验证并返回响应

我有一个 Liferay 的自定义身份验证器,它使用“AuthenticationAdmin”服务和服务方法“login()”对用户进行身份验证,只返回布尔响应。我

在我的情况下,我希望调用 Web 应用程序从这个登录方法中了解更多......就像应用程序对经过身份验证的用户所需的一些变量,例如一些用户属性,如身份验证后来自 LDAP 的“isEnabled”、“customattr”。

我们可以从 WSO2 Authenticator 返回一些响应吗?我们如何从 WSO2 IS 实现这一目标?

0 投票
1 回答
958 浏览

asp.net-mvc - asp.net mvc,多个 CustomAuthorize Role Providers

我试图将我的应用程序锁定到用户和管理员可以看到整个控制器但只有管理员可以创建、删除和编辑的每种方法。

我创建了一个包含该方法的 CustomAuthorize 类:

我的 RoleProvider 类:

在我的数据库中,我有一个 Roles 表,其中包含 Role 和 RoleID 作为列,有 2 个值 Administrator 和 User 作为角色,roleID 作为 PK,1 = Administrator & 2 = User。另一个名为 Users 的表,其中包含 UserID、Username 和 role_RoleID

当我将用户分配给 role_RoleID 为 1(管理员)并使用锁定控制器时

[CustomAuthorize(角色 = "管理员"]

这行得通。

当我分配一个 role_RoldID = 2 并使用以下方法锁定时:

[CustomAuthorize(角色 = "用户"]

这不行吗?

另一个问题是,如何将 2 个角色分配给控制器?然后我想将每个方法锁定为 1 个用户角色。

希望这是有道理的,我希望有人可以帮助我。

谢谢

史蒂文

基本上我有一个控制器,我已经把 [CustomAuthorize(Roles = "Administrators, Support")] 它锁定了,所以两个角色都可以看到控制器。

然后我有创建/删除和编辑方法:

所以基本上我想向两个角色展示整个控制器,但只有管理员可以创建/编辑/删除。

当我在 user table = 2(User) 中分配一个 roleID 时,整个应用程序都会为该用户中断。分配 RoldID = 1(管理员)它适用于所有分配了 roldID 1 的人。

目前我有方法

我知道我必须更改 IsUserInRole 方法,以便它像这样处理数组参数,public override bool IsUserInRole(string username, string[] roleName)

但不知道如何在 linq 中处理它,主要是在 IsUserInRole 方法中:

目前它在 GetRolesForUser 方法上失败了,在我相信的 where 子句中,

其中 user.role.RoleID == r.RoleID

错误信息如下所示:

已经有一个与此命令关联的打开的 DataReader,必须先关闭它。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.InvalidOperationException:已经有一个与此命令关联的打开的 DataReader,必须先关闭。

源错误:

第 66 行:var roles = 来自 user.UserRoles 中的 ur 第 67 行:来自 db.Roles 中的 r 第 68 行:其中 user.role.RoleID == r.RoleID

谢谢

0 投票
0 回答
376 浏览

asp.net - 通过 HttpModule 调用服务初始化函数

我已经编写了 WCF 数据服务,它无需身份验证即可正常运行。然后我想通过在应用程序中添加 HttpModule 来添加一些身份验证代码,如下所示:

这里 BasicAuthenticationModule 在 web.config 中注册为

现在,当我在浏览器中运行 WCF 数据服务时,它会询问我身份验证窗口。当我输入无效凭据时,它会继续要求提供正确的凭据,当我提供正确的凭据(即管理员/SecuredPassword)时,它会关闭窗口并显示空白页面。该页面的源代码如下:

当我调试代码时,我发现它没有调用我的 WCF 数据服务的 Initialize 方法,该方法在我添加 HttpModule 之前曾经被调用过。

我不明白为什么控件没有传递给 Initialize 方法。我是否必须明确添加一些东西才能运行?

0 投票
1 回答
1189 浏览

wcf - WCF 的自定义身份验证、授权和会话

我已经阅读了有关 WCF 身份验证和授权的各种实现,从重用一些内置的 .NET 和 WCF 功能开始,到以完全自定义的实现结束。

但是要考虑的因素太多了,所以我对如何为我的内网业务应用项目实现它感到困惑。

这是我需要的: - WCF .NET 4.5 服务将托管在 IIS 7 或更高版本中。

  • 很可能,ASP.NET 兼容性将被禁用。

  • 协议将是带有 BasicHttpBinding 的 HTTP,但它可能需要二进制序列化以最小化流量。

  • WCF 方法将接收一个自定义会话 ID,该 ID 将根据数据库中的用户会话对象进行检查。此项目中不允许使用 .NET 会话。

  • 服务收到 ID 后,会读取相应的用户数据(包括授权标志,查看是否允许用户执行当前操作)并进行验证。如果数据无效,则会抛出异常,不会执行 WCF 操作。如果验证成功,用户的身份将存储在当前操作上下文(以及当前线程主体)中,以便在 WCF 操作执行期间各种组件可以访问它。

  • 所有的身份验证和授权都应该在执行 WCF 操作之前透明地完成 - 不需要创建 WCF 方法的程序员的额外努力。

  • 当我执行身份验证验证时,我需要访问正在执行的 WCF 操作名称,因此如果用户没有执行操作的权限,我可以抛出异常。

  • 测试人员将使用 SoapUI,因此他们需要能够通过标准 SOAP 或 HTTP 标头传递会话 ID。

哪个是实现我的身份验证例程的最直接的方法?我应该使用自定义绑定吗?自定义行为?某种内置的请求事件处理程序(究竟是哪一个,如果禁用 ASP.NET 兼容性,它们会起作用)?授权策略(似乎有点矫枉过正,因为无论如何我都不会使用它的大部分内置功能)?还有什么?

0 投票
1 回答
2061 浏览

asp.net-mvc - 如何为我的 MVC 4 应用程序创建自定义授权属性?

这个问题可能有很多重复项。但我忽略了 MVC 的默认成员身份,并使用我的自定义登录和 cookie。这就是为什么不能像示例中那样创建自定义授权属性。我有这样的用户模型:

这是我的登录操作:

我需要通过RoleId创建自定义授权属性。顺便说一句,我已经 bool UserInRole(roleId), bool IsUserAuthenticated()准备好了方法。

抱歉英语不好。

0 投票
1 回答
3746 浏览

authentication - Symfony2 自定义身份验证提供程序错误凭据

我正在实现一个自定义身份验证提供程序,以使用外部 api,大致遵循 symfony 网站上的食谱。它几乎可以正常工作,侦听器正确侦听登录表单,然后调用返回经过身份验证的令牌的身份验证函数,问题是即使我为securityContextInterface设置了经过身份验证的令牌,系统也会返回错误的登录页面证书。在我使用的代码下它会是什么?

安全.yml

服务.yml

ApiFactory.php

ApiListener.php

如果我写:

结果是:

所以是正确的。

ApiUserToken.php

ApiProvider.php

0 投票
1 回答
62 浏览

asp.net-mvc - 在控制器上获得自定义授权后公开访问一项操作?

我正在使用 MVC 3 并在我的控制器上具有继承 AuthorizeAttribute 的自定义授权属性。但是,在一种情况下,我想从该控制器访问一项操作,而无需对其进行任何身份验证。是否可以?

我想在控制器文件中不做任何更改,因为该代码已经在生产中。有没有办法从网络配置中覆盖。

0 投票
1 回答
600 浏览

wcf - 在 UserNamePasswordValidator 中获取 WCF 请求参数

我有一个带有 WCF 服务的无状态服务器。服务器可以有多个数据库连接。因此,我必须为每个 WCF 请求提供数据库连接。我在请求对象中执行此操作。因此,对我的服务器的每个 WCF 请求都包含有关数据库连接的信息。这是函数的操作合约:

这是请求的数据合同:

现在我想为我的 WCF 服务进行自定义身份验证。因此我实现了一个继承自 UserNamePasswordValidator 的 CustomUserNamePasswordValidator。我得到用户名和密码。用户存储在数据库中。因此我必须为身份验证做一个数据库请求。问题是:我不知道服务器应该使用哪个DB,因为这个信息是在WCF服务函数的请求对象中提交的(见上文)。

在UserNamePasswordValidator的实现中,有没有办法获取被调用的WCF服务函数的参数(请求对象)?

0 投票
0 回答
974 浏览

c# - 具有自定义用户名/密码验证的 C# WCF 基于会话的服务:配置问题

我在 stackoverflow 上搜索了很多已经发布的答案,但到目前为止,没有一个解决方案没有解决我的问题。那是研究和故障排除的第二天,没有结果,所以我要寻求其他人的帮助。我正在开发一个 WPF 数据库应用程序,我想在 WPF 应用程序和数据库之间添加一个中间层 (WCF)。

WCF 服务有两个服务合同,都启用了自定义用户名/密码身份验证(也需要会话)。第一个服务合同 (IAppUserService) 将服务于将由本地用户运行的 WPF 应用程序,第二个服务合同将服务于客户可访问的网站 (IAppClientService)。

我已经包含了以下源代码:

DCMAppService.svc.cs

服务的接口文件包含以下内容:

IDCMAppService.cs

请注意,它包含WCF 必须服务的两种不同的服务协定(一种用于用户,另一种用于客户端)。

Web.config 文件包含以下内容:

我得到的响应是带有经典消息的错误页面:

此服务的元数据发布当前已禁用。

这很烦人,因为我找不到任何解决方法。

任何帮助将不胜感激。

0 投票
1 回答
1920 浏览

authentication - ServiceStack,身份验证属性

我正在尝试编写自己的身份验证,因此我继承CredentialsAuthProvider并覆盖了 Authenticate 方法。身份验证工作正常,当我调用另一个服务时,我可以看到我保存在会话中的所有数据。

问题是:当我尝试添加 Authenticate 属性并从客户端调用它时,即使我想使用 Requered Role,它也会抛出未经授权的异常。

身份验证服务是:

应用主机是:

和测试服务:

这不是真正的代码,所以很抱歉语法错误!))))但想法是一样的!请帮我看看有什么问题,为什么我在调用测试服务时出现未经授权的异常?????????