Home > ASP.NET With C#, Lập Trình > Asp.net – Tạo trang đăng nhập sử dụng tài khoản của google (gmail)

Asp.net – Tạo trang đăng nhập sử dụng tài khoản của google (gmail)

Bạn muốn sử dụng luôn tài khoàn gmail để đăng nhập trong trang của bạn? Trong bài viết này tôi minh họa cho các bạn cách tạo Form đăng nhập bằng tài khoản google sử dụng thư viện DotNetOpenAuth.dll.

Asp.net, đăng nhập, tài khoản, google, gmail,

Giả sử tôi tạo 2 trang aspx là Login.aspx và trang Home.aspx. Trang login sẽ cho phép bạn đang nhập bằng tài khoản Google OpenID, Trang Home.aspx thông báo trạng thái đăng nhập từ trang Login. Để làm được bạn cần có thư viện DotNetOpenAuth.dll (bạn có thể download ở liên kết cuối bài viết) và Add vào thư mục Bin của ứng dụng của bạn

Trong trang Login.aspx bạn kéo thả một Button và một Lable như sau

<img src="http://www.google.com/favicon.ico" />
    <asp:Button ID="btnLoginToGoogle"
    Runat="server"
    Text="Google Login"
    OnCommand="OpenLogin_Click"
    CommandArgument="https://www.google.com/accounts/o8/id"/>
<asp:Label runat="server" ID="lblMessage" />

Trong code behind bạn viết hàm Page_Load và sự kiện Click cho buttion như sau:

using DotNetOpenAuth.OpenId;
using DotNetOpenAuth.OpenId.RelyingParty;

….

protected void Page_Load(object sender, EventArgs e)
{
    OpenIdRelyingParty OIDRP = new OpenIdRelyingParty();
    var str = OIDRP.GetResponse();
    if (str != null)
    {
        switch (str.Status)
        {
            case AuthenticationStatus.Authenticated:
                NotLoggedIn.Visible = false;
                Session["GoogleIdentifier"] = str.ClaimedIdentifier.ToString();
                // Chuyến trang Home.aspx nếu thành công
                Response.Redirect("Home.aspx");
                break;
            case AuthenticationStatus.Canceled:
                lblMessage.Text = "Cancelled.";
                break;
            case AuthenticationStatus.Failed:
                lblMessage.Text = "Login Failed.";
                break;
        }
    }
}

protected void OpenLogin_Click(object src, CommandEventArgs e)
{
    string str = e.CommandArgument.ToString();
    OpenIdRelyingParty openid = new OpenIdRelyingParty();
    var b = new UriBuilder(Request.Url) { Query = "" };
    var req = openid.CreateRequest(str, b.Uri, b.Uri);
    req.RedirectToProvider();
}

Kết quả minh họa khi chạy trang Login.aspx

Bạn có thể download code của bài viết này tại: http://www.mediafire.com/?byf9wu43ywwmoys

Nội dung Bài viết tham khảo trên c-sharpcorner.com

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s