我有一个想要实现声明支持的 MVC3 应用程序。我的目标如下:
提供一个登录链接,单击该链接会显示一个带有用户名/密码和 Facebook/WindowsLive/Google 等链接的弹出窗口
访问受保护的控制器时自动重定向到我的登录页面,例如 /Order/Delete
我已经在 AppFabricLabs.com 中设置了应用程序和提供程序,并将 STS 包含在我的项目中。我还创建了 IAuthorizationFilter 的实现,因此我可以将我的控制器标记为 [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 被调用,所以我进入了一个控制器方法 /Home/FederationResult,但是发布给我的表单只包含wa和wresult字段,但我需要wctx知道将用户发送到哪里......我没有能够弄清楚为什么。
wresult是一个 XML 文档,其中包含(在无数其他事物中)登录用户的姓名和电子邮件地址,但遗憾的是不包含用户前往的 url。
我是否未能配置某些东西,或者我只是不在基地?任何人的想法?
- e