我正在寻找使用 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/