public interface IAuthenticationService
{
Task<TurnaResponse> RegisterUser(User user);
Task<TurnaResponse> LoginUser(string email, string password);
Task<TurnaResponse> ResetPassword(string userId, string password);
Task<TurnaResponse> ForgotPassword(string email);
Task<TurnaResponse> ProcessSession(string userId);
bool IsUserAuthenticated();
}
public async Task<TurnaResponse> ProcessSession(string userId)
{
UriBuilder builder = new UriBuilder(ApiConstants.BaseApiUrl)
{
Path = ApiConstants.ProcessSessionEndpoint
};
var query = System.Web.HttpUtility.ParseQueryString(builder.Query);
query["userId"] = userId;
builder.Query = query.ToString();
var result = await _genericRepository.GetAsync<TurnaResponse>(builder.ToString(), "");
result.Data = result.Data != null
? JsonConvert.DeserializeObject<User>(result.Data.ToString()) : result.Data;
_sessionResponse = (TurnaResponse)result;
return result;
}
Run Code Online (Sandbox Code Playgroud)
如何调用下面的 ProcessSession 方法来获取 IsAuthenticated 方法中返回 boolean 的响应对象?
public bool IsUserAuthenticated()
{
var result = !string.IsNullOrEmpty(_settingsService.UserIdSetting);
if (result)
{
ProcessSession(_settingsService.UserIdSetting);
result = _sessionResponse.Status;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
使用异步/等待
public async Task<bool> IsUserAuthenticated()
{
var result = !string.IsNullOrEmpty(_settingsService.UserIdSetting);
if (result)
{
var _sessionResponse = await ProcessSession(_settingsService.UserIdSetting);
result = _sessionResponse.Status;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
84 次 |
最近记录: |