我按照这篇文章https://azure.microsoft.com/en-us/blog/announcing-app-service-authentication-authorization/为我的MVC应用程序设置Azure身份验证.首先,我打开了Azure AD提供程序.在身份验证/授权设置中,我为"请求未经过身份验证时要执行的操作"选择了"允许请求(无操作)",因为我只需要用户登录某些控制器操作.
然后我添加了一个自定义FilterAttribute以检查一个操作是否需要身份验证,如/sf/ask/17360801/.在OnAuthenticationChallenge函数中,我将此代码重定向到登录页面:
public void OnAuthenticationChallenge(AuthenticationChallengeContext filterContext) { if (filterContext.Result is HttpUnauthorizedResult) { filterContext.Result = new RedirectResult("~/.auth/login/aad"); } }
所有这些都有效,除非用户完成身份验证后,它会被重定向回mysite/.auth/login/done页面,说"你已经成功登录",并有一个按钮返回我网站的基本网址.
我想要的是重定向返回到用户的原始URL,所以我想我需要以某种方式设置登录重定向的返回URL.但我找不到任何关于此的文件.有人可以提出任何建议吗?
您可以使用post_login_redirect_url查询字符串参数执行此操作.
例如,如果您想在登录后自动将用户导航到/welcome.html,您可以将登录重定向设置为〜/ .auth/login/aad?post_login_redirect_url =/welcome.html,用户将被重定向到此页面而不是通用欢迎页面.