gpt4 book ai didi

asp.net-mvc-3 - MVC3 + WIF - FederationResult 丢失 "wctx"

转载 作者:行者123 更新时间:2023-12-03 03:26:31 25 4
gpt4 key购买 nike

我有一个 MVC3 应用程序,我想为其实现声明支持。我的目标如下:

  1. 提供登录链接,单击该链接后会显示一个弹出窗口,其中包含用户名/密码和 Facebook/WindowsLive/Google 等链接

  2. 当访问 protected Controller 时自动重定向到我的登录页面,例如/订购/删除

我已在 AppFabricLabs.com 中设置了应用程序和提供程序,并将 STS 包含在我的项目中。我还创建了 IAuthorizationFilter 的实现,以便我可以将 Controller 标记为 [WifAuth] 并成功调用 OnAuthorization 方法。我已经实现了访问者尚未经过身份验证的用例,如下所示:

    private static void AuthenticateUser(AuthorizationContext context)
{
var fam = FederatedAuthentication.WSFederationAuthenticationModule;
var signIn = new SignInRequestMessage(new Uri(fam.Issuer), fam.Realm);
context.Result = new RedirectResult(signIn.WriteQueryString());
}

并成功获取带有我的身份提供商选择的AppFabricLabs页面(尚未弄清楚如何自定义该页面)。当我登录时,我的 returnUrl 被调用,因此我进入了 Controller 方法/Home/FederationResult,但是发布给我的表单仅包含 wawresult 字段,但我需要 < strong>wctx 知道将用户发送到哪里...我一直无法弄清楚为什么。

wresult 是一个 XML 文档,其中包含(以及无数其他内容)登录用户的姓名和电子邮件地址,但遗憾的是不包含用户前往的 URL .

我是否配置失败,或者我是否偏离了基地?有人有什么想法吗?

  • e

最佳答案

只需为 SignInRequestMessage 指定一个上下文即可:

signIn.Context = HttpContext.Current.Request.RawUrl;

wctx 参数包含在每个请求/响应中,也是最终发布到您网站的表单的一部分。

关于asp.net-mvc-3 - MVC3 + WIF - FederationResult 丢失 "wctx",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6782854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com