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


C# IServiceBase.GetResolver方法代码示例

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


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

示例1: TryAuthenticate

        public override bool TryAuthenticate(IServiceBase authService, string userName, string password)
        {
            var authRepo = authService.TryResolve<IAuthRepository>().AsUserAuthRepository(authService.GetResolver());

            var session = authService.GetSession();
            IUserAuth userAuth;
            if (authRepo.TryAuthenticate(userName, password, out userAuth))
            {
                if (IsAccountLocked(authRepo, userAuth))
                    return false;
                // throw new AuthenticationException("This account has been locked");

                var holdSessionId = session.Id;
                session.PopulateWith(userAuth); //overwrites session.Id
                session.Id = holdSessionId;
                session.IsAuthenticated = true;
                session.UserAuthId = userAuth.Id.ToString(CultureInfo.InvariantCulture);
                session.ProviderOAuthAccess = authRepo.GetUserAuthDetails(session.UserAuthId)
                    .ConvertAll(x => (IAuthTokens)x);

                return true;
            }

            return false;
        }
开发者ID:aaronzoe,项目名称:Klkl,代码行数:25,代码来源:CustomCredentialsAuthProvider.cs

示例2: Authenticate

        public override object Authenticate(IServiceBase authService, IAuthSession session, Authenticate request)
        {
            var authRepo = authService.TryResolve<IAuthRepository>().AsUserAuthRepository(authService.GetResolver());
            var apiRepo = (IManageApiKeys)authRepo;

            var apiKey = apiRepo.GetApiKey(request.Password);
            if (apiKey == null)
                throw HttpError.NotFound("ApiKey does not exist");

            if (apiKey.CancelledDate != null)
                throw HttpError.Forbidden("ApiKey has been cancelled");

            if (apiKey.ExpiryDate != null && DateTime.UtcNow > apiKey.ExpiryDate.Value)
                throw HttpError.Forbidden("ApiKey has expired");

            var userAuth = authRepo.GetUserAuth(apiKey.UserAuthId);
            if (userAuth == null)
                throw HttpError.Unauthorized("User for ApiKey does not exist");

            if (IsAccountLocked(authRepo, userAuth))
                throw new AuthenticationException(ErrorMessages.UserAccountLocked);

            PopulateSession(authRepo, userAuth, session);

            if (session.UserAuthName == null)
                session.UserAuthName = userAuth.UserName ?? userAuth.Email;

            var response = OnAuthenticated(authService, session, null, null);
            if (response != null)
                return response;

            authService.Request.Items[Keywords.ApiKey] = apiKey;

            return new AuthenticateResponse
            {
                UserId = session.UserAuthId,
                UserName = session.UserName,
                SessionId = session.Id,
                DisplayName = session.DisplayName
                    ?? session.UserName
                    ?? "{0} {1}".Fmt(session.FirstName, session.LastName).Trim(),
                ReferrerUrl = request.Continue,
            };
        }
开发者ID:migajek,项目名称:ServiceStack,代码行数:44,代码来源:ApiKeyAuthProvider.cs


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