我想获取用户的信息。我认为IAuthRepository可用于检索信息,但是当我发送插入用户ID时,它不会返回任何内容。我有以下代码。
public UserService(IDbConnectionFactory db)
{
this._db = db;
this._authRepository = HostContext.AppHost.GetAuthRepository(base.Request);
}
我打算允许管理员从所有用户那里访问信息,并且常规使用仅应有权访问他们自己的个人资料。在下面的代码中,我尝试从登录的用户中提取详细信息(仅作为示例),我可以看到该用户包含该信息,但测试仍然为空。我以为IAuthRepository必须以其他方式连接。
[Authenticate]
public object Get(GetUser request)
{
using (var db = _db.Open())
{
var session = this.SessionAs<AuthUserSession>();
var user = Mapper.Map<UserDto>(session);
var test = this._authRepository.GetUserAuthDetails(session.UserAuthId);
return new GetUserResponse {Results = user };
}
}
答案 0 :(得分:1)
没必要将IDbConnectionFactory
注入到您自己的服务中,因为您通常会在服务上使用Multitenancy-aware的base.Db
和base.AuthRepository
属性。还要注意,您在服务中打开的db
也是不必要的,因为它从未使用过。
Auth存储库中的2个主要User表分别是UserAuth
和UserAuthDetails
,[Authenticate]
public object Get(GetUser request)
{
var session = SessionAs<AuthUserSession>();
return new GetUserResponse {
User = AuthRepository.GetUserAuth(session.UserAuthId),
UserDetails = AuthRepository.GetUserAuthDetails(session.UserAuthId)
};
}
是主表,session.UserAuthId
包含来自外部提供商的其他信息,这些用户已使用OAuth进行了注册。
您可能希望同时返回两者:
UserAuth
如果仍然没有返回任何内容,请查看后端Auth Repository中使用的UserAuthDetails
以及stage('Test Git') {
steps {
sshagent(credentials : ['denpal']) {
sh 'git commit --allow-empty -m "test withCredentials"'
sh 'git push origin feature/Jenkinsfile'
}
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Test Git)
[Pipeline] sshagent
[ssh-agent] Using credentials git (denpal)
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent] Exec ssh-agent (binary ssh-agent on a remote machine)
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-WEsIsQvX4CFc/agent.12163
SSH_AGENT_PID=12166
Running ssh-add (command line suppressed)
[Pipeline] // sshagent
[Pipeline] }
和DETACH
表。