示例#1
0
        public async Task IssueSessionCookieAsync(params Claim[] claims)
        {
            _userToSignIn = new ClaimsPrincipal(new ClaimsIdentity(claims, "test", "name", "role"));
            var response = await BrowserClient.GetAsync(Url("__signin"));

            response.StatusCode.Should().Be(204);
        }
示例#2
0
    public async Task LogoutAsync()
    {
        var old = BrowserClient.AllowAutoRedirect;

        BrowserClient.AllowAutoRedirect = false;

        await BrowserClient.GetAsync(LogoutPage);

        BrowserClient.AllowAutoRedirect = old;
    }
示例#3
0
    /* helpers */
    public async Task LoginAsync(ClaimsPrincipal subject)
    {
        var old = BrowserClient.AllowAutoRedirect;

        BrowserClient.AllowAutoRedirect = false;

        Subject = subject;
        await BrowserClient.GetAsync(LoginPage);

        BrowserClient.AllowAutoRedirect = old;
    }
示例#4
0
    public async Task <AuthorizeResponse> RequestAuthorizationEndpointAsync(
        string clientId,
        string responseType,
        string scope               = null,
        string redirectUri         = null,
        string state               = null,
        string nonce               = null,
        string loginHint           = null,
        string acrValues           = null,
        string responseMode        = null,
        string codeChallenge       = null,
        string codeChallengeMethod = null,
        object extra               = null)
    {
        var old = BrowserClient.AllowAutoRedirect;

        BrowserClient.AllowAutoRedirect = false;

        var url    = CreateAuthorizeUrl(clientId, responseType, scope, redirectUri, state, nonce, loginHint, acrValues, responseMode, codeChallenge, codeChallengeMethod, extra);
        var result = await BrowserClient.GetAsync(url);

        result.StatusCode.Should().Be(HttpStatusCode.Found);

        BrowserClient.AllowAutoRedirect = old;

        var redirect = result.Headers.Location.ToString();

        if (redirect.StartsWith(IdentityServerPipeline.ErrorPage))
        {
            // request error page in pipeline so we can get error info
            await BrowserClient.GetAsync(redirect);

            // no redirect to client
            return(null);
        }

        return(new AuthorizeResponse(redirect));
    }
示例#5
0
        public async Task RevokeSessionCookieAsync()
        {
            var response = await BrowserClient.GetAsync(Url("__signout"));

            response.StatusCode.Should().Be(204);
        }