Google OpenID Authentication در ASP.NET با استفاده از DotNetOpenAuth
نویسنده: صابر فتح الهی
تاریخ: ۱۳۹۱/۰۵/۰۴ ۵:۴۷
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="OAuthWebTest.Login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div id="loginform">
<div id="NotLoggedIn" runat="server">
<asp:ImageButton ID="ButtonLoginWithGoogle" runat="server" ImageUrl="Google.JPG"
OnCommand="ButtonLoginWithGoogle_Click" CommandArgument="https://www.google.com/accounts/o8/id" />
<p />
<asp:Label runat="server" ID="LabelMessage" />
</div>
</div>
</form>
</body>
</html>
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using DotNetOpenAuth.OpenId.RelyingParty;
namespace OAuthWebTest
{
public partial class Login : Page
{
protected void Page_Load(object sender, EventArgs e)
{
OpenIdRelyingParty openIdRelyingParty = new OpenIdRelyingParty();
var response = openIdRelyingParty.GetResponse();
if (response == null) return;
switch (response.Status)
{
case AuthenticationStatus.Authenticated:
NotLoggedIn.Visible = false;
Session["GoogleIdentifier"] = response.ClaimedIdentifier.ToString();
Response.Redirect("Default.aspx");
break;
case AuthenticationStatus.Canceled:
LabelMessage.Text = "Cancelled.";
break;
case AuthenticationStatus.Failed:
LabelMessage.Text = "Login Failed.";
break;
}
}
protected void ButtonLoginWithGoogle_Click(object src, CommandEventArgs e)
{
string discoveryUri = e.CommandArgument.ToString();
OpenIdRelyingParty openId = new OpenIdRelyingParty();
var returnToUrl = new UriBuilder(Request.Url) { Query = "" };
var request = openId.CreateRequest(discoveryUri, returnToUrl.Uri, returnToUrl.Uri);
request.RedirectToProvider();
}
}
}
با سلام و تشکر از پست خوبتون
در زمانی که ما از سیستمهای ورود و ثبت کاربران شرکتهای دیگر استفاده میکنیم آیا میتوانیم لاگ گرفته یا اینکه برای خودمان یک صفحه داشته باشیم تا ورود و خروجهای اکانتهای درون وبسایتمان را بررسی کنیم یا اینکه خودمان باید این بخش را کدنویسی کنیم؟
یک سئوال دیگر این است که زمانی که از openid های شرکتهای دیگه استفاده میکنیم فقط احراز هویت را از این سرویسها دریافت میکنیم یا اینکه در همه صفحات و دیگر کارهای کاربر نظارت به صورت خودکار انجام میشود یا اینکه باز هم باید کدنویسی کنیم؟
سلام.
این سرویس چطوری برای اکانتهای یاهو کار میکنه؟