这是我的代码,可以正常工作。如果得到授权,它可以工作,否则,它将我重定向到身份服务器,然后重新登录。
this.getStory()
如果用户未获得授权,我想返回另一个视图,并且不要将其重定向到身份服务器。这就是我尝试过的方式。
[Authorize]
public async Task<IActionResult> Index()
{
return View("../Secure/Index");
}
但是它不起作用。 User.Identity.IsAuthenticated 始终为false。甚至当我以前在身份服务器上登录时,似乎[Authorize]属性还是在做一些设置User.Identity.IsAuthenticated的事情。
我的问题是,我怎么知道我没有属性被授权?
谢谢
答案 0 :(得分:0)
我花了三天的时间弄清楚该如何完成并得出结论这不可能完成。微软真的很棒。
我最近得到的是重定向到另一个 网址:https://stackoverflow.com/a/43631950/4909067 但是,当然,.net core 2.1中的命名是不同的。
services.AddAuthentication(options =>
{
...
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
...
options.Events = new OpenIdConnectEvents()
{
OnRedirectToIdentityProvider = async (context) =>
{
Console.WriteLine( );
if (context.HttpContext.Request.Path.Value != "/Account/SignInWithOpenId")
{
context.HttpContext.Response.Redirect("/public");
context.HandleResponse();
}
await Task.CompletedTask;
},
};
...
})
但这不是我想要的。我不想更改网址。我只想在用户登录时提供一些内容,而在用户未登录时提供不同的内容。 在相同的网址上。我应该在这个愚蠢的.net内核上选择node js