Myself implementented SSO в моем приложении с использованием аутентификации Обмен в C# по Dotnetopenauth. Google openID выпуск токен?
Мои сомнения следует,
- На ответ моего запроса AX, я не получают какой-либо маркер. должен ли я послать какой-либо параметр?
- В моем приложении мне нужно, чтобы пользователь каждый раз входил в систему на Поставщике, но, если пользователь нажмет на кнопку «автоматически зарегистрироваться в следующий раз», он никогда не запрашивает у пользователя и пароль от пользователя в следующий раз.
- AX fetchResponse null для MyopenId. поддерживает ли она только простую регистрацию?
Код запрос:
IAuthenticationRequest request = openid.CreateRequest(txt_openid_identifier.Text);
var fetchRequest = new FetchRequest();
fetchRequest.Attributes.Clear();
fetchRequest.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
fetchRequest.Attributes.AddRequired(WellKnownAttributes.Name.First);
fetchRequest.Attributes.AddRequired(WellKnownAttributes.Name.Last); fetchRequest.Attributes.AddRequired(WellKnownAttributes.Contact.HomeAddress.Country);
request.AddExtension(fetchRequest);
// Issue request to OP
request.RedirectToProvider();
Response Code:
using (var openid = new OpenIdRelyingParty())
{
var response = openid.GetResponse();
if (response == null) return;
switch (response.Status)
{
case AuthenticationStatus.Authenticated:
string emailID = string.Empty;
Session["email"] = string.Empty;
Session["name"] = string.Empty;
Session["country"] = string.Empty;
Session["Accesskey"] = string.Empty;
Session["SecretAccesskey"] = string.Empty;
var fetchResponse = response.GetExtension<FetchResponse>();
if (fetchResponse.Attributes.Contains(WellKnownAttributes.Contact.Email))
{
IList<string> emailAddresses =
fetchResponse.Attributes[WellKnownAttributes.Contact.Email].Values;
emailID = emailAddresses.Count > 0 ? emailAddresses[0] : null;
}
else
emailID = string.Empty;
}
}