Используете ли вы DotNetOpenAuth?Вот как я это сделал
Редактировать: Я добавил свой код для входа в систему OpenID.В основном вы отправляете запрос поставщику OpenID и получаете ответ на ваш запрос.Если запрос был успешным, вы должны иметь некоторую информацию о вашем пользователе, но помните, что разные поставщики OpenID предоставляют разную информацию о ваших пользователях, некоторые параметры могут отсутствовать, даже если вы запросили их.Мой код взят из приложения ASP.NET MVC
public ActionResult OpenIDLogin(string loginIdentifier)
{
var openid = new OpenIdRelyingParty();
var response = openid.GetResponse();
// If there is a response from the specified OpenID identifier we parse it and check it's status
if (response != null)
{
//check the response status
switch (response.Status)
{
case AuthenticationStatus.Authenticated:
var extensions = response.GetExtension<ClaimsResponse>();
var user = new User
{
extensions.FullName,
extensions.Nickname,
extensions.Email,
response.ClaimedIdentifier
};
return View();
case AuthenticationStatus.Canceled:
// TODO
case AuthenticationStatus.Failed:
// TODO
}
}
else
{
// If there isn't a response then we need to create the request and add desired extensions
var request = openid.CreateRequest(loginIdentifier);
request.AddExtension
(
new ClaimsRequest()
{
FullName = DemandLevel.Require,
Nickname = DemandLevel.Require,
Email = DemandLevel.Require,
Gender = DemandLevel.Require
}
);
return request.RedirectingResponse.AsActionResult();
}
return RedirectToAction("Index", "Home");
}
Метод вызывается дважды;один раз, когда запрос выполняется впервые, и он попадает в оператор «else», и второй раз, когда ответ возвращается и входит в оператор «if», создавая пользователя.Надеюсь, это поможет, и извините, что это на C #, но я не очень хорошо знаю VB, чтобы написать это.