我在使用ASP.NET MVC NerdDinner教程學習ASP.NET MVC和OpenId。請求教程添加Openid支持NerdDinner ASP.NET MVC應用程序
我想將NerdDinner中的認證系統替換爲OpenId。我已經下載了最新的DotNetOpenAuth庫,但我不知道如何把它放在一起。任何人都可以幫助快速分步教程?
這是否像在庫中放置一樣簡單,還是應用程序需要進行重大更改?
我在使用ASP.NET MVC NerdDinner教程學習ASP.NET MVC和OpenId。請求教程添加Openid支持NerdDinner ASP.NET MVC應用程序
我想將NerdDinner中的認證系統替換爲OpenId。我已經下載了最新的DotNetOpenAuth庫,但我不知道如何把它放在一起。任何人都可以幫助快速分步教程?
這是否像在庫中放置一樣簡單,還是應用程序需要進行重大更改?
一旦你下載dotnetopenid,看樣品中\ 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();
我已經下載了代碼並閱讀了指示,但仍不清楚它是如何融合在一起的。 NerdDinner示例具有默認的AccountController。驗證和會員服務包含在AccountController中。上面的代碼是否需要合併到該控制器中? – TMC2K 2009-06-03 17:54:30
在codeplex上有一個會員入門套件,應該是您正在尋找的。如果他們遵循微軟身份驗證慣例,他們都應該遵循提供者模型(閱讀它)。
要小心這個。這已經過時了幾個月,甚至不再是開箱即用的。希望項目業主將盡快開展工作。 – 2009-06-03 05:53:13
不是的NerdDinnerspecifiс但可能是誰想要在他們的ASP.NET MVC應用程序中實現的OpenID的支持都非常有用:
看在Samples/OpenIdRelyingPartyMvc dir(使用OpenId認證的簡單ASP.NET MVC網站)。您可以從將web.config中的主頁/用戶控制器/視圖和設置複製到您的項目中。我認爲這是給您的網站OpenId身份驗證的最快方式。然後,as Alexander Prokofyev said,有在Andrew Arnott's (DotNetOpenAuth/DotNetOpenId author) blog非常有用的帖子 - Add OpenID login support to your ASP.NET MVC site
好的,所以我得到了這樣的工作! 答案是下面答案的組合,加上一些控制器和視圖。
第一個download DotNetOpenAuth然後導航到示例目錄,您可以在其中找到OpenIdRelayingPartyMvc代碼。 在我的NerdDinner解決方案,
的各種意見眼下這部作品以有限的方式。我可以使用OpenID登錄並與NerdDinner應用程序進行交互。所以這很酷。但是有些功能還沒有工作。保存創建的晚餐不起作用,但它也不會掛起。我將不得不調查如何將AccountController中的一些成員函數遷移到UserController。我會更新這篇文章(建議和指針歡迎)。
+1對於「我來」 – Nifle 2009-06-01 07:53:51