首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录后使用JASIG CAS自定义操作进行表单身份验证

登录后使用JASIG CAS自定义操作进行表单身份验证
EN

Stack Overflow用户
提问于 2013-11-07 08:03:23
回答 1查看 351关注 0票数 0

这是我的第一个问题,所以我为我的英语道歉:)

我们正在使用Jasig CAS SSO提供的身份验证来构建MVC 4应用程序。

它的工作非常好,但我需要在用户身份验证之后执行自定义操作。

步骤应类似于:

  1. 用户转到我们的站点HomeController,它是由AuthorizeAttribute装饰的。
  2. 控制器将用户重定向到CAS
  3. 用户传递他的用户名和密码
  4. CAS正确验证用户身份并重定向到我们的站点。
  5. (自定义操作)登录后,我们构建会话(从DB获取用户参数,并将它们放入chache等)

操作5.成功登录后只运行一次!下一个请求跳过这个步骤。

我读过有关表单身份验证的CAS和MSDN文档,但我无法提供任何信息。

我发现我可以扩展AuthorizeAttribute并覆盖AuthorizeCore方法,但是它会运行每个请求。

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-05 09:21:20

我自己找到答案了。也许有更好的决心,但这个决定使我想要的。

要在Jasig CAS登录后进行一些自定义操作,您需要实现

protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)

Global.asax

样本代码:

代码语言:javascript
复制
protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)
        {
            //must check if user is authenticated (this method can be called before authentication) 
            if (Context.User.Identity.IsAuthenticated && Context.Session != null && Context.Session["IsLogged"] == null)
            {
               Context.Session.Add("YourKey", YourData);
               Context.Session.Add("IsLogged", true);
            }

        }

如果需要,可以在标准窗体身份验证中使用相同的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19830693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档