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.
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 ở trên) 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