当前位置: 首页>>代码示例>>C#>>正文


C# HttpRequestMessage.GetMembershipService方法代码示例

本文整理汇总了C#中System.Net.Http.HttpRequestMessage.GetMembershipService方法的典型用法代码示例。如果您正苦于以下问题:C# HttpRequestMessage.GetMembershipService方法的具体用法?C# HttpRequestMessage.GetMembershipService怎么用?C# HttpRequestMessage.GetMembershipService使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Net.Http.HttpRequestMessage的用法示例。


在下文中一共展示了HttpRequestMessage.GetMembershipService方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AuthenticateUserAsync

 protected override Task<IPrincipal> AuthenticateUserAsync(HttpRequestMessage request,string username,string password,CancellationToken cancellationToken)
 {
     var membershipService = request.GetMembershipService();
     var validUserCtx = membershipService
     .ValidateUser(username, password);
     return Task.FromResult(validUserCtx.Principal);
 }
开发者ID:dotnext24,项目名称:PingYourPackage,代码行数:7,代码来源:PingYourPackageAuthHandler.cs

示例2: GetMembershipContextAsync

 private static async Task<MembershipContext> GetMembershipContextAsync(HttpRequestMessage request, string tokens)
 {
     var data = Convert.FromBase64String(tokens);
     var decodedString = Encoding.UTF8.GetString(data);
     var tokensValues = decodedString.Split(':');
     var membershipService = request.GetMembershipService();
     var membershipCtx = await membershipService.ValidateUserAsync(tokensValues[0], tokensValues[1]);
     return membershipCtx;
 }
开发者ID:rceraline,项目名称:HomeCinema,代码行数:9,代码来源:HomeCinemaAuthHandler.cs

示例3: SendAsync

        protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            try
            {
                request.Headers.TryGetValues("Authorization", out _authHeaderValues);
                if (_authHeaderValues == null)
                {
                    return base.SendAsync(request, cancellationToken);
                }

                var tokens = _authHeaderValues.FirstOrDefault();
                tokens = tokens?.Replace("Basic", "").Trim();

                if (!string.IsNullOrEmpty(tokens))
                {
                    byte[] data = Convert.FromBase64String(tokens);
                    string decodedString = Encoding.UTF8.GetString(data);
                    string[] tokensValues = decodedString.Split(':');
                    var membershipService = request.GetMembershipService();
                    var membershipCtx = membershipService.ValidateUser(tokensValues[0], tokensValues[2]);

                    if (membershipCtx.User != null)
                    {
                        var principal = membershipCtx.Principal;
                        Thread.CurrentPrincipal = principal;
                        HttpContext.Current.User = principal;
                    }
                    else
                    {
                        var response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
                        var tsc = new TaskCompletionSource<HttpResponseMessage>();
                        tsc.SetResult(response);
                        return tsc.Task;
                    }
                }
                else
                {
                    var response = new HttpResponseMessage(HttpStatusCode.Forbidden);
                    var tsc = new TaskCompletionSource<HttpResponseMessage>();
                    tsc.SetResult(response);
                    return tsc.Task;
                }
                return base.SendAsync(request, cancellationToken);
            }
            catch (Exception)
            {
                var response = new HttpResponseMessage(HttpStatusCode.Forbidden);
                var tsc = new TaskCompletionSource<HttpResponseMessage>();
                tsc.SetResult(response);
                return tsc.Task;
            }
        }
开发者ID:CarlosSaraiva,项目名称:HomeCinema,代码行数:52,代码来源:HomeCinemaAuthHandler.cs


注:本文中的System.Net.Http.HttpRequestMessage.GetMembershipService方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。