asp.net-mvc-4 – MVC 4中客户URL的自定义OpenIdClient
发布时间:2020-12-16 07:32:21 所属栏目:asp.Net 来源:网络整理
导读:我正在使用MVC 4的默认模板,并尝试将我自己的openID提供程序(例如 http://steamcommunity.com/dev)添加到openID登录列表和openID框中,用户可以在其中键入其openID信息. 要添加Google,我只是取消评论 OAuthWebSecurity.RegisterGoogleClient(); 至于其他自定
我正在使用MVC 4的默认模板,并尝试将我自己的openID提供程序(例如
http://steamcommunity.com/dev)添加到openID登录列表和openID框中,用户可以在其中键入其openID信息.
要添加Google,我只是取消评论 OAuthWebSecurity.RegisterGoogleClient(); 至于其他自定义解决方案,你可以做类似的事情 OAuthWebSecurity.RegisterClient(new SteamClient(),“Steam”,null); 我遇到的麻烦是创建SteamClient(或通用的)http://blogs.msdn.com/b/webdev/archive/2012/08/23/plugging-custom-oauth-openid-providers.aspx没有显示任何地方更改URL. 解决方法
根据@ Jeff的回答,我创建了一个类来处理Stack Exchange OpenID.
寄存器: OAuthWebSecurity.RegisterClient(new StackExchangeOpenID()); 类: public class StackExchangeOpenID : OpenIdClient { public StackExchangeOpenID() : base("stackexchange","https://openid.stackexchange.com") { } protected override Dictionary<string,string> GetExtraData(IAuthenticationResponse response) { FetchResponse fetchResponse = response.GetExtension<FetchResponse>(); if (fetchResponse != null) { var extraData = new Dictionary<string,string>(); extraData.Add("email",fetchResponse.GetAttributeValue(WellKnownAttributes.Contact.Email)); extraData.Add("name",fetchResponse.GetAttributeValue(WellKnownAttributes.Name.FullName)); return extraData; } return null; } protected override void OnBeforeSendingAuthenticationRequest(IAuthenticationRequest request) { var fetchRequest = new FetchRequest(); fetchRequest.Attributes.AddRequired(WellKnownAttributes.Contact.Email); fetchRequest.Attributes.AddRequired(WellKnownAttributes.Name.FullName); request.AddExtension(fetchRequest); } } 检索额外数据: var result = OAuthWebSecurity.VerifyAuthentication(); result.ExtraData["email"]; result.ExtraData["name"]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – Visual Studio不允许在MVC视图中使用断点
- asp.net – 如何从Date对象减去一个月?
- ASP浏览器版本检测+操作系统判断检测
- asp.net-mvc – Can Meteor可以运行Microsoft后端(即EF和AS
- asp.net-mvc – 如何在asp.net mvc中的静态类中获取客户端的
- asp.net-mvc – 实体框架4不保存我的多对多行
- 开始使用asp.net / c #web apps
- asp.net-mvc – 如何根据MVC中的其他参数值在运行时更改Dis
- asp.net – 如何判断一个方法是否在UpdatePanel回发中运行?
- vs文件上传失败--超过最大字符限制
推荐文章
站长推荐
- iis-7.5 – IIS 7.5 Siteminder不保护ASP.net MV
- 如何在Asp.Net Mvc中进行Basecamp风格的账户?
- asp.net – 如何在使用SqlDataReader时获取存储过
- asp.net-mvc – 我应该为ASP.Net MVC项目使用什么
- asp.net-mvc – 使用jQuery.get时可以指定相对UR
- asp.net – 具有主动/主动粘滞会话的SignalR和负
- asp.net-mvc – 如何避免打开重定向漏洞并成功登
- asp.net – 使用DependencyResolver进行MVC 3的C
- 实体框架 – 单个或多个存储库类?
- asp.net-mvc – ASP.NET MVC中的代码
热点阅读