asp.net – Azure上的联合身份验证
|
我使用WIF(.net 4.5)和Azure Active目录进行身份验证。该网站将坐在Azure上。 一切工作作为预期的本地,但是当我把它放在azure我得到的错误:
我明白这是因为应用程序不能使用DAPI,所以我需要切换到使用MAC保护我的应用程序。 本地我添加到我的webconfig: – <securityTokenHandlers>
<remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler,System.IdentityModel,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" />
<add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler,System.IdentityModel.Services,PublicKeyToken=b77a5c561934e089" />
</securityTokenHandlers>
如在documentation中推荐的,我添加了一个静态机器密钥,但我找不到任何建议围绕密钥长度 – 所以我假设256。 然而这个配置只是给出这个错误:
我删除了machinekey部分incase我没有指定正确格式化的键,但错误不会消失。 什么战斗WIF已经! 解决方法如果没有在配置中指定machineKey,Azure会添加一个。但是,如果您创建新版本的应用程序并使用VIP切换将其部署到Azure,Azure会在Staging中生成新机器部署的键(假设您的第一个部署是生产)。 (VIP交换是部署新版本然后在生产和分段之间交换虚拟IP地址的好机制)。所以基本上一个解决方案是让Azure生成密钥,但VIP开关后你有问题回来。为了避免它,你可以捕获Global.asax中的CryptographicException在Application_Error处理程序,像这样: // Be sure to reference System.IdentityModel.Services
// and include using System.IdentityModel.Services;
// at the start of your class
protected void Application_Error(object sender,EventArgs e)
{
var error = Server.GetLastError();
var cryptoEx = error as CryptographicException;
if (cryptoEx != null)
{
FederatedAuthentication.WSFederationAuthenticationModule.SignOut();
Server.ClearError();
}
}
SignOut()方法导致cookie被删除。 编辑:生成machineKey的更新信息,如@anjdreas所示。 另一个解决方案是生成machineKey,可以使用IIS管理器来做到这一点,详情参见Easiest way to generate MachineKey。如果将相同的密钥放入Azure Web角色中的所有Web应用程序中,则Azure部署过程将不会替换它。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 在自托管Web应用程序中使用性能计数器
- asp.net-mvc-4 – Resharper无法解析主页中的部分视图
- .net核心中的ServicePointManager.DefaultConnectionLimit?
- asp.net – 在IE9中HTML表格无法正确呈现
- ASP.NET框架中的异步页面 – 其他线程在哪里,如何重新连接?
- asp.net-mvc – 在asp.net MVC 3中授权登录URL
- .net – MVC3部分视图与常规视图
- asp.net – 在日历上设置最小和最大日期?
- 部署 – kestrel-hellomvc.service:步骤USER产生失败/usr/
- 当值不为null时,清除在ASP.NET MVC视图中输出值的方法
- asp.net-mvc – 使用Web Deploy发布ASP.NET MVC2
- asp.net-mvc-routing – 如何防止Url.RouteUrl(…
- asp.net-mvc-4 – 如何在MVC4中使用SimpleMember
- asp.net核心 – ASP.NET核心中的基本身份验证
- asp.net-mvc – asp.net mvc 3 – ajax表单提交和
- 如何使用WSP将Asp.net Web应用程序部署到Sharepo
- 如何使用ASP.NET MVC Web API OData链接到Razor中
- asp.net-mvc-3 – 如何使用DropdownList助手正确
- asp.net-mvc – 使用令牌认证访问Web Api的MVC .
- asp.net-mvc – Identity Server 3 – 客户端应用
