我有兩個用於用戶名和密碼的文本框,現在我希望用戶輸入他們的公司電子郵件ID和密碼(用戶名和密碼由google提供,webserver是谷歌)並登錄到ASP.net website.Create會話的用戶名和密碼。另外,我希望用戶能夠發送電子郵件從asp.net網站使用相同的gmail憑證。感謝您提前和任何類型的幫助將不勝感激。用於驗證ASP.net網站的Gmail憑證
回答
我想要的答案是這個,這段代碼工作正常。我不會在會話和數據庫的任何地方存儲密碼。
<form id="form1" runat="server">
<div id="loginform">
<div id="NotLoggedIn" runat="server">
Log in with <img src="http://www.google.com/favicon.ico" />
<asp:Button ID="btnLoginToGoogle" Runat="server" Text="Google" OnCommand="OpenLogin_Click"
CommandArgument="https://www.google.com/accounts/o8/id" />
<p /><asp:Label runat="server" ID="lblAlertMsg" />
</div>
</div>
</form>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DotNetOpenAuth.OpenId;
using DotNetOpenAuth.OpenId.RelyingParty;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
OpenIdAjaxRelyingParty rp = new OpenIdAjaxRelyingParty();
var r = rp.GetResponse();
if (r != null)
{
switch (r.Status)
{
case AuthenticationStatus.Authenticated:
NotLoggedIn.Visible = false;
Session["GoogleIdentifier"] = r.ClaimedIdentifier.ToString();
Response.Redirect("Default2.aspx");
break;
case AuthenticationStatus.Canceled:
lblAlertMsg.Text = "Cancelled.";
break;
}
}
}
protected void OpenLogin_Click(object sender, CommandEventArgs e)
{
string discoveryUri = e.CommandArgument.ToString();
OpenIdRelyingParty openid = new OpenIdRelyingParty();
var b = new UriBuilder(Request.Url) { Query = "" };
var req = openid.CreateRequest(discoveryUri, b.Uri, b.Uri);
req.RedirectToProvider();
}
}
但我仍然有進一步的懷疑是如何獲得通過用戶登錄到創建會話的用戶名... ???這是可以做到我在什麼地方見過...
用戶名(電子郵件地址)將在成功登錄並重定向Google後返回給您。用戶將會在google.com上被要求授權您的應用程序甚至可以看到該電子郵件地址(僅在第一次成功登錄後纔會看到一次),並且只有在此之後,您纔會收到用戶以及該電子郵件地址。不過,我不知道這方面的技術性。 – 2012-02-09 20:14:47
@Hari我還沒有找到解決方案,在成功登錄後獲取用戶的電子郵件ID ... ???是否可以獲取電子郵件ID? – Gunner 2012-02-18 06:39:15
您應該檢查C#的OpenId庫。
http://code.google.com/p/dotnetopenid/
這會給你一個良好的開端。這樣,用戶不必直接使用他的密碼,而是將其重定向到將爲您的站點授權的提供商。
那麼,谷歌不會讓你這樣做。你將不得不做類似於StackOverflow正在做的事情(提供OpenID功能來驗證在 google.com)。
- 1. 驗證網站的憑證
- 2. 如何使用python實現網站的帳戶憑證驗證
- 3. 單用戶網站的ASP.NET驗證
- 4. ASP.NET Intranet網站要求憑據 - Windows身份驗證
- 5. 驗證外部網站的登錄憑證
- 6. 登錄使用Gmail憑證
- 7. 驗證FTP憑證
- 8. 驗證IAM用戶憑證
- 9. 驗證用戶憑證
- 10. 與facebook的ASP.NET網站驗證
- 11. 使用先前登錄的網站驗證外部網站asp.net
- 12. 用於驗證憑據的REST方法
- 13. 來自網站的郵件,在Gmail中使用兩步驗證
- 14. ASP.NET網站身份驗證Cookie共享
- 15. Asp.net多語言網站驗證
- 16. laravel jwtAuth驗證憑證
- 17. Jenkins Packer AWS憑證驗證
- 18. 遠程驗證用戶的憑證
- 19. 用於網站的Python- request.post登錄憑證
- 20. 基於ASP.NET IIS身份驗證的網站
- 21. 使用libcurl驗證用戶憑證
- 22. 使用sfGuard驗證用戶憑證
- 23. 驗證遠程網站的SSL證書
- 24. 驗證文件存在於網站上
- 25. 網站的特定驗證
- 26. AOL OpenID的網站驗證
- 27. 網站的HTML驗證器
- 28. 如果用戶對父網站進行身份驗證,則無需輸入兒童網站的憑證
- 29. 發送與使用Gmail憑證
- 30. 用於驗證github憑證的Shell腳本
可能重複:http://stackoverflow.com/questions/5435322/authentication-with-google-or-facebook – 2012-02-08 19:22:57
你描述了你的代碼應該做什麼,但你沒有問一個問題。你曾經嘗試過什麼,遇到什麼麻煩? – 2012-02-08 19:23:10
請不要實際要求他們的谷歌帳戶的用戶名和密碼。任何程序員都不應該在計算機附近允許這樣做。 – 2012-02-08 19:31:41