TMC*_*C2K 26 asp.net-mvc dotnetopenauth nerddinner
我正在寻找使用ASP.NET MVC NerdDinner教程学习ASP.NET MVC和OpenId.
我想将NerdDinner中的身份验证系统替换为仅OpenId.我已经下载了最新的DotNetOpenAuth库,但我不知道如何将它们放在一起.任何人都可以帮助快速一步一步的教程吗?
这是否像在库中删除一样简单,还是应用程序需要进行重大更改?
nik*_*d23 14
下载dotnetopenid后,请查看samples\RelyingPartyMvc目录.有一个示例,他们用OpenID替换默认的MVC身份验证系统.相关代码位于Controllers/UserController.cs中.以下是Authenticate操作:
//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();
Run Code Online (Sandbox Code Playgroud)
不是NerdDinner特有的,但对于想要在其ASP.NET MVC应用程序中实现OpenId支持的人可能有用:
好的,所以我得到了这种工作!答案是以下答案的组合加上一些控制器和视图.
首先下载DotNetOpenAuth,然后导航到samples目录,在那里可以找到OpenIdRelayingPartyMvc代码.在我的NerdDinner解决方案中,
现在这种方式有限.我可以使用OpenID登录并与NerdDinner应用程序进行交互.这太酷了.但是某些功能尚不起作用.保存创建的晚餐不起作用,但它也不会挂起.我将不得不研究如何将AccountController中的一些成员资格功能迁移到UserController.我将更新这篇文章(欢迎提出建议和指示).
| 归档时间: |
|
| 查看次数: |
3664 次 |
| 最近记录: |