我有一个xamarin forms应用程序,用asp.net会员身份验证,并在身份验证后给予accesstoken.在其他平台(如silverlight,javascrip libs......),这个token访问共享accross所有对服务器的请求(如webclient,httpclient,图像源请求和......)和所有请求自动发送它到服务器如何我可以在xamarin forms上为所有请求共享这个token?我不能为所有请求手工设置cookie。
你可以使用这个接口的单人实现。
public interface IApiService
{
HttpClient GetAuthorizedHttpClient();
}
当你第一次得到你的token时。
设置aspNetToken字段。无论何时在你的应用程序中进行请求,都要调用GetAuthorizedHttpClient,而不是实例化一个新的。
public class ApiService : IApiService
{
private string aspNetToken; // set this once when instantiating
private HttpClient HttpClient;
protected HttpClient GetAuthorizedHttpClient()
{
if (HttpClient != null)
{
return HttpClient;
}
HttpClient = new HttpClient();
HttpClient.DefaultRequestHeaders.Authorization
= new AuthenticationHeaderValue("Bearer",
aspNetToken
);
return HttpClient;
}