我设置了一个WCF服务,该服务目前实现了IAuthorizationPolicy
和UserNamePasswordValidator
,这些服务本身目前正在达到基础学位。
它已经实现到我的web.config中,如下所示:
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="SecureService.CustomUsernamePasswordValidator, SecureService"/>
</serviceCredentials>
<serviceAuthorization principalPermissionMode="Custom">
<authorizationPolicies>
<add policyType="SecureService.MyAuthorization, SecureService"/>
</authorizationPolicies>
</serviceAuthorization>
目前正在做的是验证UsernamePasswordValidator
中的凭据,然后通过在不同的呼叫中检查数据库中的所述用户来检索角色。
我遇到的问题是我的数据库电话&#39;是对另一个应用程序的调用,其中调用本身大约需要一秒钟。因此,我希望通过一次通话进行身份验证和授权。
我想到的唯一可能性是将逻辑完全放在IsInRole
函数中,该函数当前设置如下:
public bool IsInRole(string role)
{
PopulateUserRoles();
return _roles.Contains(role);
}
我的问题是 - 是否有实现这一目标的标准方法?如果没有,这是一种安全的方式同时做两件事吗?