Authentication 如何在ServiceStack中更新用户数据表单会话?
非常简单的问题:我的服务中有一个会话对象:Authentication 如何在ServiceStack中更新用户数据表单会话?,authentication,servicestack,Authentication,servicestack,非常简单的问题:我的服务中有一个会话对象: var session = this.GetSession(); //IAuthSession if (!session.IsAuthenticated) 我可以根据传递给服务的参数修改会话类中的一些值(例如权限);那我想救他们。 怎么做 直接的方法是:创建一个UserAuth对象,使用IAuthSession中的所有字段对其进行popole,获取IDbConnectionFactory,然后保存它 当然有一种更快更好的方法,但我没能找到 一般
var session = this.GetSession(); //IAuthSession
if (!session.IsAuthenticated)
我可以根据传递给服务的参数修改会话类中的一些值(例如权限);那我想救他们。
怎么做
直接的方法是:创建一个UserAuth对象,使用IAuthSession中的所有字段对其进行popole,获取IDbConnectionFactory,然后保存它
当然有一种更快更好的方法,但我没能找到
一般来说,如何在IAuthSession和UserAuth之间切换?也就是说,给定一个IAuthSession对象,我如何获得一个UserAuth对象,修改它,并保存修改
我已经读了这个问题,但仍然缺少一些东西
一旦您添加了所需内容,如何保存?(我怀疑您是否只是将元数据添加到session和UserAuth中,然后使用IDbConnectionFactory保存后者;肯定有更好的方法!)这个老问题值得回答 正在使用的
UserAuthRepository
应该有一个UpdateUserAuth
方法的实现,可以调用该方法来保存UserAuth
更改
UpdateUserAuth(UserAuth existingUser, UserAuth newUser, string password)
另一个更简单的方法是使用PUT
调用RegisterService
,它将为您更新现有的注册用户
/// <summary>
/// Update an existing registraiton
/// </summary>
public object Put(Register request)
{
return Post(request);
}
//
///更新现有的注册
///
公共对象Put(注册请求)
{
返回岗位(请求);
}
服务调用类似于以下内容:
using (var authService = base.ResolveService<RegisterService>())
{
var authResponse = authService.Put(
new Register {
UserName = session.UserName ?? session.Email,
Email = session.Email,
etc...
});
if (authResponse is IHttpError)
throw (Exception)authResponse;
}
使用(var authService=base.ResolveService())
{
var authResponse=authService.Put(
新登记册{
用户名=session.UserName??session.Email,
Email=session.Email,
等
});
if(authResponse为IHTTPeror)
抛出(异常)authResponse;
}