标签: dotnetopenauth

ASP.NET MVC 2应用程序中使用DotNetOpenAuth的null ClaimsResponse

我正在尝试使用DotNetOpenAuth(最新版本)来使用ASP.NET MVC 2网站.我得到第一部分工作,当用户选择OpenID提供者时调用操作,我得到正确的标识符传入,然后我被正确地重定向到提供者网站,我被重定向回我的网站,但这是问题所在.

我请求的声明为空(请参阅下面的代码).

public ActionResult TryAuth(string openid_identifier)
{
    var openid = new OpenIdRelyingParty();
    var response = openid.GetResponse();
    if(response== null)
    {
        var req = openid.CreateRequest(openid_identifier);
        req.AddExtension(new ClaimsRequest
                            {
                                Email = DemandLevel.Require,
                                Nickname = DemandLevel.Require
                            });
        return req.RedirectingResponse.AsActionResult();
    }
    switch(response.Status)
    {
        case AuthenticationStatus.Authenticated:
            {
                var data = response.GetExtension(typeof(ClaimsResponse)) as ClaimsResponse;
                // data is null <-----------------------------------------
                return View("Index");
            }
    }
    return View("Index");
}
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我正在制造的(不那么)明显的错误,我将不胜感激.

openid dotnetopenauth

1
推荐指数
1
解决办法
1130
查看次数

oAuth协议中accessToken的到期日期

我正在使用dotNetOpenAuth授权Google oAuth提供商.

我对以下区别之间的区别感到困惑:

consumerToken,consumerSecret,accessToken

从提供者我得到了accessToken一些用户.可以永远保持我吗?或者它会过期吗?

代码如何在不将用户重定向到"允许访问我的谷歌数据页面"的情况下启用授权?

c# oauth dotnetopenauth

1
推荐指数
1
解决办法
1490
查看次数

如何将DotNetOpenAuth程序集引用引入ASP.NET MVC4解决方案的单元测试项目?

Tl; dr版本:遇到异常:System.IO.FileLoadException:无法加载文件或程序集'DotNetOpenAuth.AspNet,版本4. 0 .0.0 ...

有点沮丧的是,msft在新的MVC4项目模板中使用了很多静态类和auth方法.想要将所有成员资格/身份验证功能包装到实现接口的类中,以便我可以模拟单元测试.

经过几个挣扎的晚上,我决定从头开始,所以我删除了所有DotNetOpenAuth*程序集引用和nuget package.config引用.我已经删除了对Micrsoft.Aspnet.WebPages.OAuth.dll的所有引用.

重新安装软件包: 我对解决方案中需要dll引用的三个项目运行install-package dotnetopenauth.aspnet.

解决方案不会构建,因为我的包装器有一个包装的方法:Microsoft.AspNet.WebPages.OAuth(.dll).OAuthWebSecurity.RegisteredClientData因此我需要对这个assy的引用,所以我运行install-package microsoft.aspnet.webpages .oauth反对同样的三个项目.

解决方案构建,但是当我运行引用Microsoft.AspNet.WebPages.OAuth(.dll).OAuthWebSecurity.RegisteredClientData的单元测试时,我得到一个运行时异常: System.IO.FileLoadException:无法加载文件或程序集'DotNetOpenAuth.AspNet,Version 4. 0 .0.0 ...

在所有三个项目,该组件中的引用参考文献4.1 .0.0,一样的DotNetOpenAuth.AspNet assemblyIdentity在我的web.config.

我正在使用resharper来运行测试,测试是nunit风格.

最后这里是我在fuslogvw中看到的粘贴.显然有些东西正在寻找4. 0 .0.0但我无法弄清楚它是做什么或做什么的(我有几次删除了这个转储中引用的临时数据文件夹):

***** 装配活页夹日志条目(11/13/2012 @ 10:04:54 PM) ************

操作失败.绑定结果:hr = 0x80131040.没有可用的描述.

程序集管理器从以下位置加载:C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll在可执行文件C:\ Program Files(x86)\ JetBrains\ReSharper\v7.0\Bin\JetBrains.ReSharper.TaskRunner下运行.CLR4.MSIL.exe ---下面是详细的错误日志.

===预绑定状态信息=== LOG:User = i7\dave LOG:DisplayName = DotNetOpenAuth.AspNet,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 2780ccd10d57b246(完全指定)LOG:Appbase = file: ///C:/SVN/trunk/SoAndSo45/SoAndSo.Com.Tests.Unit/bin/Debug LOG:Initial PrivatePath = NULL …

dll .net-assembly dotnetopenauth nuget asp.net-mvc-4

1
推荐指数
1
解决办法
1万
查看次数

DotNetOpenAuth ClaimedIdentifier有变化吗?我应该在数据库中存储什么来识别用户

有喜欢的相当多的问题,其中所有的权利ClaimedIdentifier应被用来唯一标识每个用户.

成功登录后,我将存储ClaimedIndentifier在数据库中.每当用户登录时,我遍历我的记录寻找ClaimedIdentifier.但是我发现它ClaimedIdentifiers正在改变.我应该在数据库中存储什么来识别我的用户.我正在使用Google帐户.这就是我检索将其存储到数据库中的方式

OpenIdRelyingParty rp = new OpenIdRelyingParty();
IAuthenticationResponse r = rp.GetResponse();
UserController.addUser(new UserController.User(r.ClaimedIdentifier.ToString(), 0));
Run Code Online (Sandbox Code Playgroud)

c# asp.net openid dotnetopenauth

1
推荐指数
1
解决办法
439
查看次数

使用DotNetOpenAuth实现API密钥

我需要为我们将要托管的一些Web服务实现身份验证.我想使用开放标准,所以我对OAuth感兴趣.

我将使用WebAPI来提供这些服务.

所以这就是我遇到麻烦的地方:我读过的大部分(或者全部)Api Key/OAuth场景涉及(在某些时候)坐在屏幕前的用户.

我需要整理一个业务合作伙伴将要调用的API.这些呼叫将来自一个自动化过程 - 链中没有任何人可以被重定向到具有登录凭据的网站.

但是,我不希望任何人出现并致电我的服务.

所以,我读到了OAuth,以及它如何使用共享密钥签署每个请求,我认为这就是我所追求的.(我要么设置会话密钥,要么考虑将其中一个参数设为"滴答"值,并且只在短时间内接受请求等)

我有点希望我可以使用DotNetOpenAuth来完成这个(或类似的东西),但我遇到的每个例子都以"用户被重定向到登录页面"开头.我只需要"2腿"认证.

有没有使用DotNetOpenAuth这样做的例子?

还有更好的方法吗?

c# authentication oauth dotnetopenauth asp.net-web-api

1
推荐指数
1
解决办法
2051
查看次数

open id连接基本客户端和显式客户端配置文件之间的区别

嗨,我正在使用Open Id Connect协议进行身份验证方案.我只是想知道Open Id Connect中基本客户端和隐式客户端场景之间的确切区别.

security openid standards dotnetopenauth google-openid

1
推荐指数
1
解决办法
551
查看次数

oauth2 身份验证 C# 代码不起作用

我正在尝试使用身份验证代码使用 oauth2 api。在第一步中,我通过提供客户端 ID 和机密来接收身份验证,现在在第二步中,我需要使用该身份验证代码的访问令牌。我试过下面的c#代码

var client1 = new RestClient("https://ant.aliceblueonline.com/oauth2/token");
var request1 = new RestRequest(Method.POST);
request1.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request1.AddParameter("code", "xxxxxxxxxxxxxxxxx");
request1.AddParameter("grant_type", "authorization_code");
request1.AddParameter("redirect_uri", "https://ant.aliceblueonline.com/plugin/callback");
request1.AddParameter("client_id", "MM01418");
request1.AddParameter("client_secret", "xxxxxxxxxxxxxx");
IRestResponse response = client1.Execute(request1);
Run Code Online (Sandbox Code Playgroud)

作为回应,我得到

OAuth 2.0 客户端支持客户端身份验证方法“client_secret_basic”,但请求了方法“client_secret_post”。您必须配置 OAuth 2.0 客户端的“token_endpoint_auth_method”值以接受“client_secret_post

尝试了很多,但无法解决。

c# oauth dotnetopenauth oauth-2.0

1
推荐指数
1
解决办法
5606
查看次数

如何在不进入.Net的openid站点的情况下传递用户为openid提供的密码?

我使用以下代码.

OpenIdRelyingParty createRelyingParty()
{
    OpenIdRelyingParty openid = new OpenIdRelyingParty();
    int minsha, maxsha, minversion;
    if (int.TryParse(Request.QueryString["minsha"], out minsha))
    {
        openid.Settings.MinimumHashBitLength = minsha;
    }
    if (int.TryParse(Request.QueryString["maxsha"], out maxsha))
    {
        openid.Settings.MaximumHashBitLength = maxsha;
    }
    if (int.TryParse(Request.QueryString["minversion"], out minversion))
    {
        switch (minversion)
        {
            case 1: openid.Settings.MinimumRequiredOpenIdVersion = ProtocolVersion.V10; break;
            case 2: openid.Settings.MinimumRequiredOpenIdVersion = ProtocolVersion.V20; break;
            default: throw new ArgumentOutOfRangeException("minversion");
        }
    }
    return openid;
}

OpenIdRelyingParty openid = createRelyingParty();  
IAuthenticationRequest request = openid.CreateRequest(openIdBox.Text); 

request.RedirectToProvider();  
Run Code Online (Sandbox Code Playgroud)

上面的行进入openid站点进行身份验证.但我想在不进入openid站点的情况下进行身份验证.能帮帮我吗.谢谢

c# asp.net openid dotnetopenauth

0
推荐指数
2
解决办法
556
查看次数

您是否对OpenID URI执行任何验证?

使用OpenID登录用户时,是否对OpenID URI(或标识符)执行了任何验证?或者你只是让图书馆处理它(如DotNetOpenAuth).

openid validation dotnetopenauth

0
推荐指数
1
解决办法
221
查看次数

这是认证或授权吗?

我想使用DotNetOpenAuth来创建这样的东西

是认证还是授权?任何推荐的教程?

在此输入图像描述

c# dotnetopenauth

0
推荐指数
1
解决办法
143
查看次数

在单声道下运行DotNetOpenAuth时,Logger.Create中的TypeLoadException

我正在关注DotNetOpenAuth的简单教程.当我在localhost visual studio开发机器上运行它时它工作正常.

但是,只要我将其移动到运行mono的测试/登台服务器,就会抛出以下错误:

位置:Page_Load

 An exception was thrown by the type initializer for DotNetOpenAuth.Reporting
InnerException: System.TypeInitializationException: An exception was thrown by the type initializer for DotNetOpenAuth.Logger ---> System.TypeLoadException: A type                             load exception has occurred.
  at DotNetOpenAuth.Logger.Create (System.String name) [0x00000] in <filename unknown>:0
  at DotNetOpenAuth.Logger.CreateWithBanner (System.String name) [0x00000] in <filename unknown>:0
  at DotNetOpenAuth.Logger..cctor () [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at DotNetOpenAuth.Reporting.Initialize () [0x00000] in <filename unknown>:0
  at DotNetOpenAuth.Reporting.set_Enabled (Boolean …
Run Code Online (Sandbox Code Playgroud)

dotnetopenauth

0
推荐指数
1
解决办法
924
查看次数