asp.net – WSFederationAuthenticationModule.RedirectingToIde
我的Global.asax.cs文件中有2个事件
WSFederationAuthenticationModule_SecurityTokenValidated和WSFederationAuthenticationModule_RedirectingToIdentityProvider Wif引擎不调用WSFederationAuthenticationModule_RedirectingToIdentityProvider.为什么? public class MvcApplication : System.Web.HttpApplication { void WSFederationAuthenticationModule_SecurityTokenValidated(object sender,SecurityTokenValidatedEventArgs e) { FederatedAuthentication.SessionAuthenticationModule.IsSessionMode = true; } void WSFederationAuthenticationModule_RedirectingToIdentityProvider(object sender,RedirectingToIdentityProviderEventArgs e) { //some code } } 这是web.config中的microsoft.identityModel部分 <microsoft.identityModel> <service saveBootstrapTokens="true"> <audienceUris mode="Never"> </audienceUris> <federatedAuthentication> <wsFederation passiveRedirectEnabled="true" issuer="http://localhost/dss.web.sts.tokenbaker/" realm="http://localhost/dss.web.frontend" requireHttps="false" /> <cookieHandler requireSsl="false" /> </federatedAuthentication> <issuerNameRegistry type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry,Microsoft.IdentityModel,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"> <trustedIssuers> <add thumbprint="308efdee6453fff68c402e5eceee5b8bb9eaa619" name="servcert" /> </trustedIssuers> </issuerNameRegistry> </service> </microsoft.identityModel> 解决方法
您在web.config中缺少以下行:
在configSections元素中: <section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection,System.IdentityModel,Version=4.0.0.0,PublicKeyToken=B77A5C561934E089"/> <section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection,System.IdentityModel.Services,PublicKeyToken=B77A5C561934E089"/> 在system.webServer元素中 <modules> <remove name="FormsAuthentication" /> <add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule,PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule,PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> </modules> 你的观众Uris是空的.您必须指定Web应用程序,因此它可以使用此功能.所以,添加这一行: <audienceUris> <add value="http://localhost/dss.web.frontend"/> </audienceUris> 如果在此更改后重新考虑问题,则可以实现从WSFederationAuthenticationModule派生的自定义身份验证模块.像这样的东西: public class CustomAuthenticationModule : WSFederationAuthenticationModule { public CustomAuthenticationModule() { base.SecurityTokenReceived += CustomAuthenticationModule_SecurityTokenReceived; } public void CustomAuthenticationModule_SecurityTokenReceived(object sender,SecurityTokenReceivedEventArgs e) { } protected override void OnAuthenticateRequest(object sender,EventArgs args) { base.OnAuthenticateRequest(sender,args); } } 然后只是在配置更改而不是WSFederationAuthenticationModule中,将CustomAuthenticationModule放入适当的命名空间和程序集签名.因此,您可以拦截代理中的呼叫. 希望这对你有所帮助. Rastko (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 即使它已经过时,仍然可以使用System.Data.Oracl
- asp.net – 在另一个控件之前插入控件
- ASP.NET CompareValidator问题
- asp.net-mvc – asp.net mvc 4 – 好的是每个线程共享DbCon
- asp.net – 用户之间共享的公共共享变量?
- asp.net-mvc – 如何使用ASP.NET MVC和表单身份验证创建单页
- asp.net – 如何使用嵌套的视图模型获取EditorFor的数据
- asp.net-mvc-4 – MVC 4中客户URL的自定义OpenIdClient
- asp.net – Css样式停止部分回发
- 使用TypeScript和ASP.Net WebApi完全输入
- asp.net-mvc – 使用Html.BeginForm与querystrin
- asp.net – 在创建cookie时,如何指定www而不是ww
- JavaScript即时判断输入密码的强度
- asp.net-mvc – AttributeRouting ActionLink帮助
- asp.net-mvc – 我们是否正在使用.Net 3.5中的MV
- asp.net – WebApi:将参数映射到标头值
- 在ASP.NET中管理实体框架ObjectContext
- asp.net – 如何准备控制器使用Session但是可以测
- MONO / ASP.NET Linux主机?
- asp.net-mvc – ASP.NET MVC UpdateModel空属性