小编Ste*_*ake的帖子

Azure AD注销URL不重定向

我正在建立以下网址

https://login.microsoftonline.com/<tenantid>/oauth2/logout?client_id=<clientId>&post_logout_redirect_uri=<encodedurl>
Run Code Online (Sandbox Code Playgroud)

看起来像

https://login.microsoftonline.com/f4aaf6e1-ffff-ffff-bb63-4e8ebf728113/oauth2/logout?client_id=f562b4e3-ffff-ffff-b4bb-49ca64216e75&post_logout_redirect_uri=https%3A%2F%2Fmyazureapp.azurewebsites.net
Run Code Online (Sandbox Code Playgroud)

它注销了我,但没有将我重定向回我的应用程序

像这样的URL天青

https://login.microsoftonline.com/common/oauth2/logout?post_logout_redirect_uri=https%3a%2f%2fmanage.windowsazure.com%2fSignOut%2fComplete
Run Code Online (Sandbox Code Playgroud)

我查看了建议的相关Q,并尝试了一些变体。

编辑它原来是一个间歇性的问题,我想这是由于在执行开发/测试周期时某些cookie /其他状态未重置。使用全新的浏览器,它可以工作。退出后,屏幕上会显示诸如“在我们退出时稍候片刻”之类的内容,然后重定向,如果退出后屏幕上显示“您已退出,请关闭浏览器”。

azure azure-active-directory adal

5
推荐指数
1
解决办法
1万
查看次数

Serilog 请求记录到 Application Insights 正在记录为 Trace

我的 Main 中有以下代码

Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Debug()
        .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
        .MinimumLevel.Override("System", LogEventLevel.Warning)
        .MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Warning)
        .Enrich.FromLogContext()
        .WriteTo.ApplicationInsights(
        configuration["ApplicationInsights:InstrumentationKey"],
              new CustomConverter())
        .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

.UseSerilog();我的CreateHostBuilder方法。

然后在我的Configure

app.UseSerilogRequestLogging();
Run Code Online (Sandbox Code Playgroud)

日志正在到达应用程序见解,但Requests被记录为Traces

我相信这是由于app.UseSerilogRequestLogging();不知道App Insights并且它只是触发了一个简单的日志,而 App Insights 不知道它是一个请求跟踪日志,因此它只是将其记录为Trace

如何将UseSerilogRequestLogginglog 生成的日志作为Requestin App Insights

asp.net serilog asp.net-core

5
推荐指数
0
解决办法
1148
查看次数

AuthorizationPolicy设置状态码

我有一个AuthorizationHandler,我现在想返回一个自定义状态代码(或文本),我只是想使其返回429(这是速率限制,但不相关)

public class ReCaptchaHandler : AuthorizationHandler<ReCaptchaRequirement>
{
    private readonly ReCaptcha _reCaptcha;
    private readonly IHttpContextAccessor _accessor;

    public ReCaptchaHandler(ReCaptcha reCaptcha, IHttpContextAccessor accessor)
    {
        _reCaptcha = reCaptcha;
        _accessor = accessor;
    }
    protected override  Task HandleRequirementAsync(AuthorizationHandlerContext context,
        ReCaptchaRequirement requirement)
    {

        context.Fail();
        _accessor.HttpContext.Response.StatusCode = 429;
        return Task.CompletedTask;
    }
}

public class ReCaptchaRequirement :  IAuthorizationRequirement
{
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在尝试将status设置为429 _accessor.HttpContext.Response.StatusCode = 429;

我尝试使用http上下文var filterContext = context.Resource as AuthorizationFilterContext;,然后filterContext.HttpContext

我按照以下方式创建我的政策

services.AddSingleton<IAuthorizationHandler, ReCaptchaHandler>();
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddAuthorization(options =>
{
    options.AddPolicy("ReCaptcha",
        policy => policy.Requirements.Add(new ReCaptchaRequirement()));
}); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-core-mvc

4
推荐指数
1
解决办法
1438
查看次数