我们目前正在覆盖产品中的WSFederationAuthenticationModule.RedirectToIdentityProvider
,以更改用户代理在身份验证后重定向到的returnUrl。
现在我们正在采用OWIN(Katana)中间件代替HttpModules。在WsFederationAuthenticationOptions
中的RedirectToIdentityProvider
通知中,我看到WCtx
参数现在包含使用DPAPI加密的WsFedOwinState
参数。
如何实施RedirectToIdentityProvider
操作来更改返回网址?我是否需要解密WsFedOwinState
参数以添加returnUrl查询参数,还是有其他方法?
答案 0 :(得分:3)
在RedirectToIdentityProvider中,您将可以访问WsFederationMessage。
将Wreply属性设置为您需要的值。
注意:默认情况下使用MachineKey,而不是使用DPAPI来保护wctx。
答案 1 :(得分:0)
就我而言,我更改了SecurityTokenValidated
中的返回网址,并且ADFS的重定向始终转到相同的网址
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(WsFederationAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = WsFederationAuthenticationDefaults.AuthenticationType });
app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = adfsMetadata,
Notifications = new WsFederationAuthenticationNotifications
{
SecurityTokenValidated = nx =>
{
nx.AuthenticationTicket.Properties.RedirectUri = "/RedirectionGoesHere.aspx";
return Task.FromResult(0);
}
}
});
// This makes any middleware defined above this line run before the Authorization rule is applied in web.config
app.UseStageMarker(PipelineStage.Authenticate);
}