当用户单击我的站点中需要身份验证的链接时,浏览器将重定向到登录页面.登录页面包含returnUrl查询字符串参数.问题是,如果用户使用OpenID进行身份验证,则提供程序会将用户重定向回登录页面,并且不包含returnUrl参数,这非常无聊,因为我将用户重定向到主页而不是尝试的页面.
我正在使用DotNetOpenID,有没有办法解决这个问题?
我正在实现OpenID,我想检索用户的电子邮件地址和有关用户的其他信息,我这样做:
var fetch = new FetchRequest();
fetch.AddAttribute(new AttributeRequest(WellKnownAttributes.Contact.Email));
request.AddExtension(fetch);
Run Code Online (Sandbox Code Playgroud)
但提供者不会返回任何内容.我正在使用DotNetOpenID
我究竟做错了什么?
谢谢!
编辑:
当我尝试使用MyOpenID或Google 在http://www.plaxo.com/注册时,他们都说plaxo正在请求其他信息,但是当我测试我的网站时他们没有说什么......
您好,我在asp.net中有以下代码.我使用DotNetOpenAuth.dll for openID.代码在
protected void openidValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
// This catches common typos that result in an invalid OpenID Identifier.
args.IsValid = Identifier.IsValid(args.Value);
}
protected void loginButton_Click(object sender, EventArgs e)
{
if (!this.Page.IsValid)
{
return; // don't login if custom validation failed.
}
try
{
using (OpenIdRelyingParty openid = this.createRelyingParty())
{
IAuthenticationRequest request = openid.CreateRequest(this.openIdBox.Text);
// This is where you would add any OpenID extensions you wanted
// to include in the authentication request.
ClaimsRequest objClmRequest = new …Run Code Online (Sandbox Code Playgroud) 我正在使用DotNetOpenAuth在我们的Web应用程序中集成openID.以下代码向提供商请求信息.
try
{
var req = openid.CreateRequest(Request.Form["openid_identifier"]);
req.AddExtension(new DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.ClaimsRequest
{
Email = DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.DemandLevel.Require,
FullName = DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.DemandLevel.Require,
Nickname = DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.DemandLevel.Request,
PostalCode = DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.DemandLevel.Request
});
return req.RedirectingResponse.AsActionResult();
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,来自openID提供商的响应永远不会附带我要求的信息.以下是代码:
// Stage 3: OpenID Provider sending assertion response
switch (response.Status) {
case AuthenticationStatus.Authenticated:
Session["FriendlyIdentifier"] = response.FriendlyIdentifierForDisplay;
FormsAuthentication.SetAuthCookie(response.ClaimedIdentifier, false);
if (!string.IsNullOrEmpty(returnUrl)) {
return Redirect(returnUrl);
} else {
return RedirectToAction("Index", "Home");
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过:response.ClaimedIdentifier以百万种方式而且它从来没有我可以做的有价值的信息.有任何想法吗?
如何编写一个接受可变数量参数的Javascript函数,并将所有这些参数转发给其他匿名函数?
例如,考虑触发事件的方法的场景:
function fireStartedEvent(a,b,c,d,e,f,g,...) {
for(var i = 0; i < startedListeners.length; i++) {
startedListeners[i](a,b,c,d,e,f,g,...);
}
}
Run Code Online (Sandbox Code Playgroud)
特别是因为我有一个生成这些消防方法的事件工厂,所以这些方法无需知道给定事件或其处理程序消耗了多少参数.所以我现在在7点硬连线(a到g).如果它没有,没问题.如果它已经存在,它们会被切断.我怎样才能捕获并传递所有参数?
谢谢.
(在这里使用jQuery或任何其他Javascript框架不是一个选项.)
我注意到ReSharper禁用标准的VS2010 C#语言服务错误报告到错误列表.我必须做一个完整的构建,以便让C#提供ReSharper不报告的错误.当我卸载ReSharper时,C#仍处于禁用/中断状态.如何重新启用它以便在错误列表中获得语言服务生成的错误?
我搜索过,阅读FB开发者文档.
MVC 4,我合并了OpenId.
现在我想包括FB登录,就像Stackoverflow和其他一些网站已实现它一样.
我是否使用FB开发人员的示例代码创建自己的JS文件?
或
使用第三方工具,我不知道该使用什么.我确实看过OAuthClient(DotNetOpenAuth-4.0.0.11165),它无法运行,出现服务器错误,无法调试因为源文件丢失.
openid oauth dotnetopenauth facebook-graph-api asp.net-mvc-4
有没有办法在使用Microsoft.Web.WebPages.OAuth时更改范围/权限?最合乎逻辑的地方是使用OAuthWebSecurity.RegisterClient注册客户端.我认为extraData参数的添加范围可能会起作用,但我没有成功.
使用HttpClient和HttpResponseMessage时,WebResponse.IsFromCache的等价物是什么?
我可以看一下响应中是否有一些HTTP头?
似乎每个人都使用PushSharp从C#向iOS设备发送推送通知.但是该库有一个它使用的队列,而不是直接发送通知,这意味着您需要一个Windows服务或其他东西来正确托管它(根据自己的文档)这对我来说是过度的.我有一个传入Web请求到我的ASP.NET Web服务,作为处理它的一部分,我想立即发送推送通知.就那么简单.
任何人都可以告诉我如何使用PushSharp立即发送一个(绕过其队列机制)或如何正确发送推送通知自己?我已经有了制定JSON消息的代码,但我不知道如何将.p12文件应用于请求.我找不到任何Apple文档来说明如何做到这一点.