asp.net-mvc - 请求教程以向 NerdDinner ASP.NET MVC 应用程序添加 Openid 支持

标签 asp.net-mvc dotnetopenauth nerddinner

我正在寻找使用 ASP.NET MVC NerdDinner 教程了解 ASP.NET MVC 和 OpenId。

我想将 NerdDinner 中的身份验证系统替换为仅 OpenId。我已经下载了最新的 DotNetOpenAuth 库,但我不确定如何将它们组合在一起。任何人都可以帮助提供快速的分步教程吗?

这是像放入库一样简单还是应用程序也需要进行重大更改?

最佳答案

下载后 dotnetopenid ,在 samples\RelyingPartyMvc 目录中查找。有一个示例,他们用 OpenID 替换了默认的 MVC 身份验证系统。相关代码在 Controllers/UserController.cs 中。这是身份验证操作:

//Stage 1: Show form asking for Open ID identifier URL
var openid = new OpenIdRelyingParty();
if (openid.Response == null) {
    // Stage 2: user submitting Identifier
    Identifier id;
    if (Identifier.TryParse(Request.Form["openid_identifier"], out id)) {
            openid.CreateRequest(Request.Form["openid_identifier"]).RedirectToProvider();
    } else {
            ViewData["Message"] = "Invalid identifier";
            return View("Login");
            }
} else {
    // Stage 3: OpenID Provider sending assertion response
    switch (openid.Response.Status) {
        case AuthenticationStatus.Authenticated:
            FormsAuthentication.RedirectFromLoginPage(openid.Response.ClaimedIdentifier, false);
            break;
        case AuthenticationStatus.Canceled:
            ViewData["Message"] = "Canceled at provider";
            return View("Login");
        case AuthenticationStatus.Failed:
            ViewData["Message"] = openid.Response.Exception.Message;
            return View("Login");
    }
}
return new EmptyResult();

关于asp.net-mvc - 请求教程以向 NerdDinner ASP.NET MVC 应用程序添加 Openid 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/933884/

相关文章:

c# - 在 web.config 中保留敏感信息

twitter - 无法使用 dotnetopenauth 与 twitter 进行身份验证

asp.net-mvc - 在 ASP.NET MVC 4 中使用 OAuthWebSecurity 时获取 Google 用户名?

ASP.NET MVC : How to transfer more than one object to View method?

asp.net-mvc - 我如何在我的 ASP.NET MVC 规则违规中获得数据库验证?

asp.net-mvc - NerdDinner Visual Web Developer 2010设置

asp.net-mvc - 无法获得有效的 Unity session 生命周期管理器,ASP.NET MVC5

javascript - jQuery Datepicker 中的禁用日期取决于模型 MVC 中的其他属性

c# - claimsResponse 始终返回 Null

jquery - asp mvc2,如何发布和绑定(bind)嵌套对象?