我一直在转换项目:OpenIdRelyingPartyMvc和OpenIdProviderMvc是相同的代码库。我希望有一个可以提供这两种功能的网站。
我的清单上留下的整合部分如下。
案例1
OpenIdProviderMvc需要global.asax中指定的以下路由。但是,使用这些路由会使OpenIdRelyingPartyMvc显示OpenID文本框和登录按钮。相反,它说“这是登录的OpenID身份页面”。
//-- OpenIdProviderMvc requires these, however, it breaks OpenIdRelyingPartyMvc
routes.MapRoute(
"User identities",
"user/{id}/{action}",
new {controller = "User", action = "Identity", id = string.Empty, anon = false});
routes.MapRoute(
"PPID identifiers",
"anon",
new {controller = "User", action = "Identity", id = string.Empty, anon = true});
案例2
第二个区别是web.config中的表单身份验证。
//-- OpenIdRelyingPartyMvc
<forms defaultUrl="~/Home" loginUrl="~/User/Login" name="OpenIdRelyingPartyMvcSession"/>
//-- OpenIdProviderMvc
<forms loginUrl="~/Account/LogOn" timeout="2880" name="ProviderMvcSession"/>
如果给出这两个案例,我怎样才能完成整合?
谢谢
答案 0 :(得分:0)
注意:目前我的要求是每个站点一个用户。
我找到的解决方案是:
“登录”的所有条款和操作均更改为“登录”,“注销”更改为“退出”。
在主页上有一个链接到/ Account / Login
帐户/登录是在同一页面上同时具有用户登录和openid登录。还涉及将身份移动到帐户控制器并删除UserController / actions,因为这基本上只是一个经过身份验证的成员区域。
表单身份验证为/ Account / Login版本(web.config)由(1)更改
所有XRDS xml文档都要分别命名为XRDS-Party或XRDS-Provider,并且还需要从视图中以xml的形式返回,而不需要它们的周边布局。我只能通过而不是返回View(),在http://learningdds.com/public/ControllerExtension.cs
Log4net是你的朋友,特别是当“找不到端点”错误时。它还帮助我发现返回的xml文档被xml包围。
最后,上述步骤并不是将解决方案转换为单个代码库的完整指南。希望它会帮助你并随意问问。