上午在域中所有的应用程序执行SSO的过程认证在HTTP处理程序
我所做的事情至今都
- 创建了形式认证父网站,登录进行
- 删除所有子应用程序的认证模式为无
- 在所有子应用程序中添加处理程序,检查用户是否已通过认证并获取应用程序的用户详细信息
规范处理程序如下
public class MyHandler : IHttpHandler, IRequiresSessionState
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
if (context.Request.IsAuthenticated)
{
if (context.Session["UserDetails"] == null)
{
string userName = HttpContext.Current.User.Identity.Name;
UserManagement userMngmt = new UserManagement();
userMngmt.GetLoggedUserDetails(userName);
// context.Response.Redirect(context.Request.Url.ToString(), true);
}
}
else
{
context.Response.Redirect("/SSO");
}
}
}
的想法是,如果他被认证获取用户名和获得会话他的细节和商店,并继续与用户信息加载请求的页面。
但现在页面没有被加载。我明白,检查后,我必须加载请求的页面。如何做到这一点。
我错过了很多的变化之间细节 - 为什么它会创建一个重定向循环,为什么页面没有被加载(它是否抛出异常 - wh ich one),最重要的是描述流程。 –
看看:https://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx –
@Ondrej Svejdar问题重构 –