我使用IdentityServer3进行身份验证。我已经在我的HomeController中添加了AuthorizeAttribute。当授权失败时,我希望它重定向到IdentityServer,特别是调用我的AccountController的SignIn操作 - 不要看到任何其他方法来执行此操作。我的SignIn方法如下:
var state = Guid.NewGuid().ToString("N");
var nonce = Guid.NewGuid().ToString("N");
var url = Settings.AuthorizeEndpoint +
"?client_id=" + Settings.ClientId +
"&response_type=id_token" +
"&scope=openid email public" +
"&redirect_uri=" + Settings.RedirectUri +
"&response_mode=form_post" +
"&state=" + state +
"&nonce=" + nonce;
SetTempCookie(state, nonce);
return Redirect(url);
除了编写自己的自定义授权属性外,还有更简单的方法吗?
答案 0 :(得分:1)
如果您手动执行 - 那就是它的工作方式。
Katana OpenID Connect中间件可以简化此操作 - 如果您可以使用此库。