/// <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); }
/// <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); }
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); }