Immer die "Berechtigung verweigert wurde, für diese Anfrage." - Meldung

Ich bin in der Lage, erfolgreich abrufen von token, aber wenn Sie versuchen, zu authentifizieren, über die token bekomme ich immer die Authorization has been denied for this request Nachricht.

Meine Startup.cs - Datei enthält die folgenden Methoden

public void Configuration(IAppBuilder app)
{
    var config = new HttpConfiguration();
    WebApiConfig.Register(config);

    app.UseWebApi(config);

    ConfigureOAuth(app);

    var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter().First();
    jsonFormatter.SerializerSettings
                 .ContractResolver = new CamelCasePropertyNamesContractResolver();
}

private void ConfigureOAuth(IAppBuilder app)
{
    var oAuthServerOptions = new OAuthAuthorizationServerOptions()
    {
        AllowInsecureHttp = true,
        TokenEndpointPath = new PathString("/Token"),
        AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
        Provider = new DefaultAuthorizationServerProvider()
    };

    app.UseOAuthAuthorizationServer(oAuthServerOptions);
    app.UseOAuthBearerAuthentication(new   OAuthBearerAuthenticationOptions());
}

Den DefaultAuthorizationServerProvider.cs - Klasse enthält die folgenden

public class DefaultAuthorizationServerProvider : OAuthAuthorizationServerProvider
{
    public override async Task ValidateClientAuthentication
        (
        OAuthValidateClientAuthenticationContext context
        )
    {
        context.Validated();
    }

    public override async Task GrantResourceOwnerCredentials
        (
        OAuthGrantResourceOwnerCredentialsContext context
        )
    {
        context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });

        var identityManager = new IdentityManager();

        var identity = identityManager.Get(context.UserName, context.Password,
            new IpAddressProvider().Provide(IpAddressType.Forwarding));

        if (identity == null)
        {
            context.SetError("invalid_grant", "Authentication failed. Please make sure you provided the correct username and password.");
        }
        else
        {
            identity.AddClaim(new Claim(ClaimTypes.Role, "User"));
            context.Validated(identity);
        }
    }
}

Und die IdentityManager.cs Klasse haben die folgenden

public class IdentityManager : IIdentityManager
{
    public virtual ClaimsIdentity Get
       (
       string username,
       string password,
       string ipAddress
       )
    {
        var authenticateUserWorkflowOutput = new AuthenticateUserWorkflowHelper().Execute
            (
                new AuthenticateUserWorkflowInput
                {
                    Username = username,
                    Password = password,
                    IpAddress = ipAddress
                },
                new AuthenticateUserWorkflowState()
            );

        if (authenticateUserWorkflowOutput.Message.Exception != null)
        {
            return null;
        }

        if (!authenticateUserWorkflowOutput.Authenticated)
        {
            return null;
        }

        return authenticateUserWorkflowOutput.User != null ? new Infrastructure.Identity(new[]
        {
            new Claim(ClaimTypes.Name, authenticateUserWorkflowOutput.MasterUser.EmailAddress), 
        }, "ApplicationCookie") : null;
    }
}

Mit Fiddler kann ich erfolgreich abrufen eines Tokens

Immer die

Aber wenn ich versuche, die Authentifizierung unter Verwendung des token bekomme ich die folgende Antwort

Immer die

InformationsquelleAutor Andre Lombaard | 2015-03-19

Schreibe einen Kommentar