在xamarin窗体上共享toke权限

问题描述 投票:0回答:1

我有一个xamarin forms应用程序,用asp.net会员身份验证,并在身份验证后给予accesstoken.在其他平台(如silverlight,javascrip libs......),这个token访问共享accross所有对服务器的请求(如webclient,httpclient,图像源请求和......)和所有请求自动发送它到服务器如何我可以在xamarin forms上为所有请求共享这个token?我不能为所有请求手工设置cookie。

asp.net xamarin xamarin.forms asp.net-membership forms-authentication
1个回答
0
投票

你可以使用这个接口的单人实现。

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;
        }
© www.soinside.com 2019 - 2024. All rights reserved.