コード例 #1
0
        /// <summary>
        /// Creates the error result.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        public static UserAuthenticationResult CreateErrorResult(string message)
        {
            if (string.IsNullOrWhiteSpace(message))
            {
                message = "Invalid credentials.";
            }

            var result = new UserAuthenticationResult()
            {
                User         = null,
                Roles        = null,
                IsValid      = false,
                ErrorMessage = message
            };

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// Creates the authorized result.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="roles">The roles.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentException">
        /// Object cannot be null;user
        /// or
        /// Object cannot be null;roles
        /// </exception>
        public static UserAuthenticationResult CreateAuthorizedResult(IUser user, IRole[] roles)
        {
            if (user == null)
            {
                throw new ArgumentException("Object cannot be null", nameof(user));
            }
            if (roles == null)
            {
                throw new ArgumentException("Object cannot be null", nameof(roles));
            }

            var result = new UserAuthenticationResult()
            {
                User         = user,
                Roles        = roles,
                IsValid      = true,
                ErrorMessage = null
            };

            return(result);
        }
コード例 #3
0
            public static void Configure(IAppBuilder app)
            {
                var authFunc =
                    new Func <OAuthGrantResourceOwnerCredentialsContext, Task <UserAuthenticationResult> >(c =>
                {
                    var task = new Task <UserAuthenticationResult>(() =>
                    {
                        using (var context = new SampleDbContext())
                        {
                            var user =
                                context.SystemUsers.FirstOrDefault(
                                    u => u.Id == c.UserName && u.Password == c.Password);

                            if (user == null)
                            {
                                return(UserAuthenticationResult.CreateErrorResult("Invalid credentials"));
                            }

                            var roles = user.Roles.ToArray();
                            return(UserAuthenticationResult.CreateAuthorizedResult(user, roles));
                        }
                    });

                    task.Start();
                    return(task);
                });

                var authServerOptions = new OAuthAuthorizationServerOptions()
                {
                    AllowInsecureHttp         = true,
                    TokenEndpointPath         = new PathString("/token"),
                    AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
                    Provider           = new BasicOAuthAuthorizationProvider(authFunc),
                    AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Active,
                    AuthenticationType = "Bearer"
                };

                // Token Generation
                app.UseOAuthBearerTokens(authServerOptions);
            }