현재 내베이스 스테이션에 인증 토큰이 있습니다. 이 때문에 회원 API를 사용하여 내 컨트롤러에서 모든 Repos를 호출해야합니다. 내 모델에서 이러한 repos에 노출되고 싶지만이 토큰이 필요합니다.MVC3에서 인증 토큰을 노출하는 방법
모든 사용자에게 영향을주지 않으면 서 각 요청마다 업데이트 될이 토큰을 설정할 수있는 곳이 있습니까? 내 뷰 모델이 일부 기본 모델에서이 모델에 액세스하고 해당 모델에 repos를 호출 할 수있을 정도로만이 모델을 노출하는 방법이 있습니까?
/// <summary>
/// Provide authentication credentials for the current user.
/// </summary>
protected IToken AuthenticatedUserToken
{
get
{
var userCred = (UsersCredential) this.Session [GlobalContext.UserCredentialsSessionKey];
if (userCred != null)
{
return userCred.UsersToken;
}
if (Request.IsAuthenticated)
{
var name = HttpContext.User.Identity.Name;
var repository = new UserRepository(GlobalContext.ProvisioningApiServiceBase,
GlobalContext.WebServiceUserAuthenticationToken);
var usersCredential = new UsersCredential
{
UsersName = name,
UsersToken =
repository.GetAuthenticationTokenForAuthenticatedUser(name)
};
Session[GlobalContext.UserCredentialsSessionKey] = usersCredential;
return usersCredential.UsersToken;
}
return null;
}
}
protected RepositoryCollection _Repositories { get; set; }
protected RepositoryCollection Repositories
{
get
{
if (_Repositories == null)
{
_Repositories = new RepositoryCollection(this.AuthenticatedUserToken);
}
return _Repositories;
}
}